Azure / azure-spatial-anchors-samples

Azure Spatial Anchors sample code
Other
293 stars 139 forks source link

Saving anchors on a mobile network sometimes fails. #259

Closed konstyanchev closed 3 years ago

konstyanchev commented 3 years ago

Hello,

I've been trying out the Spatial Anchors service with 4G mobile data for outdoor use. I'm currently only testing on the Hololens 2. Unfortunately the results are inconsistent. I'd say that about 50% of the time the anchor will be saved to the cloud and 50% the request will time out and result in a failure. My first project uses Unity 2019.4.21f1 LTS and Spatial Anchors 2.8.1. The second one is the spatial anchors sample project that I'm running on Unity 2020.3.4f1 LTS with Spatial Anchors (Core + Windows) 2.9.0. When using Wi-Fi the uploads are almost instantaneous but with 4G it seems to take way longer and I think timeouts occur at some point. Unfortunately the exceptions returned are always empty and fail to provide any additional info. The only error that appears is "Service unavailable or unspecified error found".

Let me know if I can provide any additional info that'll help narrow the issue.

gllebede commented 3 years ago

May I ask you to enable diagnostics Logging and diagnostics ( https://docs.microsoft.com/en-us/azure/spatial-anchors/concepts/logging-diagnostics ) and send me a session ID or complete logs if possible?

konstyanchev commented 3 years ago

Sorry for the delay. I implemented the necessary code for the logs submission and tried it again today. However it was working 100% of the time. My data plan just got reset today which means I'm able to use mobile internet at full speed as opposed to having limited bandwidth. I'll try to find a slower mobile connection and report back. In the meantime, could you let me know the bandwidth requirements for using the ASA service?

UPDATE: I was able to try it with another pocket-wifi device and consistently failed to upload and save and anchor to the cloud. Unfortunately submitting a log also fails with the message: "Could not get session properties. Error: Fail; Message". The only thing I was able to get was the Session ID: fcebcabe-2ee1-4d4a-9ccc-3ad668a05699. I'm also unable to connect the Unity Editor to the HL2 in order to get the log output when using the pocket-wifi.

snowyao commented 3 years ago

Working on unity(iOS) and SDK Version(2.9.0). Here is the similar log, when internet is not stable, it will likely fail to save, in order to reproduce it, tester can 1, Disconnect internet then try to save, it will fail for sure 2, Reconnect to internet, it will fail to save since then I would like to know what can I do after user's internet is not stable and fail to save since then. Is it restart the scene the only choice we have?

` RestClient::CreateNeighborhoodAnchorAndSpatialAnchorAsync - Exception 'HRESULT: 80004005 Platform error code: fffffc04' Microsoft.Azure.SpatialAnchors.OnLogDebugDelegate:Invoke(Object, OnLogDebugEventArgs) Microsoft.Azure.SpatialAnchors.OnLogDebugDelegate:Invoke(Object, OnLogDebugEventArgs)

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

CreateNeighborhoodAnchorAndSpatialAnchor failed with HTTP error 0. ReqCV: BiumpZ8nRl67xwbHJ7myGw. ResCV: . JSON Error: Microsoft.Azure.SpatialAnchors.OnLogDebugDelegate:Invoke(Object, OnLogDebugEventArgs) Microsoft.Azure.SpatialAnchors.OnLogDebugDelegate:Invoke(Object, OnLogDebugEventArgs)

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

OnError - Service unavailable or unspecified error found Microsoft.Azure.SpatialAnchors.OnLogDebugDelegate:Invoke(Object, OnLogDebugEventArgs) Microsoft.Azure.SpatialAnchors.OnLogDebugDelegate:Invoke(Object, OnLogDebugEventArgs) Microsoft.Azure.SpatialAnchors.<>c__DisplayClass88_0:b__0() System.Action:Invoke() System.Threading.Tasks.Task:Execute() System.Threading.ContextCallback:Invoke(Object) System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean) System.Threading.Tasks.Task:ExecuteWithThreadLocal(Task&) System.Threading.Tasks.Task:ExecuteEntry(Boolean) System.Threading.ThreadPoolWorkQueue:Dispatch()

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

CloudManager_Error Service unavailable or unspecified error found Microsoft.Azure.SpatialAnchors.Unity.Examples.DemoScriptBase:CloudManager_Error(Object, SessionErrorEventArgs) Microsoft.Azure.SpatialAnchors.SessionErrorDelegate:Invoke(Object, SessionErrorEventArgs) Microsoft.Azure.SpatialAnchors.SessionErrorDelegate:Invoke(Object, SessionErrorEventArgs) Microsoft.Azure.SpatialAnchors.<>c__DisplayClass88_0:b__0() System.Action:Invoke() System.Threading.Tasks.Task:Execute() System.Threading.ContextCallback:Invoke(Object) System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean) System.Threading.Tasks.Task:ExecuteWithThreadLocal(Task&) System.Threading.Tasks.Task:ExecuteEntry(Boolean) System.Threading.ThreadPoolWorkQueue:Dispatch()

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

Failed to save catch exception: Microsoft.Azure.SpatialAnchors.Unity.Examples.<>cDisplayClass64_0:b0() System.Threading.ContextCallback:Invoke(Object) System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean) System.Runtime.CompilerServices.MoveNextRunner:Run() System.Action:Invoke() System.Threading.ContextCallback:Invoke(Object) System.Threading.Tasks.AwaitTaskContinuation:RunCallback(ContextCallback, Object, Task&) System.Threading.Tasks.Task:FinishContinuations() System.Threading.Tasks.Task:Finish(Boolean) System.Threading.Tasks.Task1:TrySetException(Object) System.Runtime.CompilerServices.AsyncTaskMethodBuilder1:Create() Microsoft.Azure.SpatialAnchors.Unity.UnityDispatcher:.cctor() System.Threading.ContextCallback:Invoke(Object) System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean) System.Runtime.CompilerServices.MoveNextRunner:Run() System.Action:Invoke() System.Threading.ContextCallback:Invoke(Object) System.Threading.Tasks.AwaitTaskContinuation:RunCallback(ContextCallback, Object, Task&) System.Threading.Tasks.Task:FinishContinuations() System.Threading.Tasks.Task:Finish(Boolean) System.Threading.Tasks.Task1:TrySetException(Object) System.Runtime.CompilerServices.AsyncTaskMethodBuilder1:Create() Microsoft.Azure.SpatialAnchors.<>c__DisplayClass95_0:b__0() System.Threading.ContextCallback:Invoke(Object) System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean) System.Runtime.CompilerServices.MoveNextRunner:Run() System.Action:Invoke() System.Threading.SendOrPostCallback:Invoke(Object) UnityEngine.Enumerator:Reset() UnityEngine.UnitySynchronizationContext:Exec()

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

`

phamqduc commented 3 years ago

hi @snowyao, thank you for posting your observation here too. Please kindly see our response on https://github.com/Azure/azure-spatial-anchors-samples/issues/265