Improbable Icon

Forums

CLI error with local deployment

Hello,

We get the following error when trying to launch a local deployment with the latest version of the CLI tool. We are using Unity 2018.2.11 and the spatial SDK (not the GDK, yes I know we will switch eventually). The previous CLI tool works fine but we can’t get that version with the rollback command if we are using a new install.

[Worker: UnityWorker0] UriFormatException: URI scheme must start with a letter and must consist of one of alphabet, digits, ‘+’, ‘-’ or ‘.’ character.
in System.Uri.Parse (UriKind kind, System.String uriString) (at /Users/builduser/buildslave/mono/build/mcs/class/System/System/Uri.cs:1352)
System.Uri.ParseUri (UriKind kind) (at /Users/builduser/buildslave/mono/build/mcs/class/System/System/Uri.cs:1215)
System.Uri…ctor (System.String uriString, Boolean dontEscape) (at /Users/builduser/buildslave/mono/build/mcs/class/System/System/Uri.cs:209)
System.Uri…ctor (System.String uriString)
UnityEngineInternal.WebRequestUtils.MakeInitialUrl (System.String targetUrl, System.String localUrl)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)

Hi @MythicalCityJosh,

The new version of the SpatialOS CLI changes the way the Locator URL is passed into the worker. The SDK expects something that looks like “http://xxxx” while it now gets “xxxx” directly. You can fix this by reapplying the “http” bit yourself inside the worker code: DefaultTemplateProvider.cs in the UnitySDK.

var infraServiceUrl = String.Format("http://{0}", SpatialOS.Configuration.InfraServiceUrl);
                        pendingUrlResolveRequest = CloudAssemblyArtifactResolver.ResolveAssetUrls(this, new WWWRequest(), infraServiceUrl, projectName, assemblyName, OnAssetBundleNameToUrlMapResolved, OnAssetResolveFailed);
                        break;

Regards,
Harald

We tried that, and got some new errors:

[improbable.bridge.logging.EngineLogMessageHandler] [Worker: UnityWorker0] Task [CloudAssemblyArtifactResolver::ResolveAssetUrls] failed with message: Failed to receive data. Retrying with 2 retries left.
 in UnityEngine.Debug:LogWarning(Object)
Improbable.Unity.Util.TaskRunnerWithExponentialBackoff`1:ProcessResult(WWWResponse) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/TaskRunnerWithExponentialBackoff.cs:55)
Improbable.Unity.Core.CloudAssemblyArtifactResolver:<Start>m__4(WWWResponse) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Core/CloudAssemblyArtifactResolver.cs:88)
Improbable.Unity.Util.<SendRequestCoroutine>c__Iterator0:MoveNext() (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/WWWRequest.cs:65)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
 -[WorkerLogger:Unity]
[improbable.bridge.logging.EngineLogMessageHandler] [Worker: UnityWorker0] Task [CloudAssemblyArtifactResolver::ResolveAssetUrls] failed with message: Failed to receive data. Retrying with 1 retries left.
 in UnityEngine.Debug:LogWarning(Object)
Improbable.Unity.Util.TaskRunnerWithExponentialBackoff`1:ProcessResult(WWWResponse) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/TaskRunnerWithExponentialBackoff.cs:55)
Improbable.Unity.Core.CloudAssemblyArtifactResolver:<Start>m__4(WWWResponse) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Core/CloudAssemblyArtifactResolver.cs:88)
Improbable.Unity.Util.<SendRequestCoroutine>c__Iterator0:MoveNext() (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/WWWRequest.cs:65)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
 -[WorkerLogger:Unity]
[improbable.bridge.logging.EngineLogMessageHandler] [Worker: UnityWorker0] Task [CloudAssemblyArtifactResolver::ResolveAssetUrls] failed with message: Failed to receive data. Retrying with 0 retries left.
 in UnityEngine.Debug:LogWarning(Object)
Improbable.Unity.Util.TaskRunnerWithExponentialBackoff`1:ProcessResult(WWWResponse) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/TaskRunnerWithExponentialBackoff.cs:55)
Improbable.Unity.Core.CloudAssemblyArtifactResolver:<Start>m__4(WWWResponse) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Core/CloudAssemblyArtifactResolver.cs:88)
Improbable.Unity.Util.<SendRequestCoroutine>c__Iterator0:MoveNext() (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/WWWRequest.cs:65)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
 -[WorkerLogger:Unity]
[improbable.bridge.logging.EngineLogMessageHandler] [Worker: UnityWorker0] Task [CloudAssemblyArtifactResolver::ResolveAssetUrls] failed with message: Failed to receive data. No retries left. Aborting.
 in UnityEngine.Debug:LogError(Object)
Improbable.Unity.Util.TaskRunnerWithExponentialBackoff`1:ProcessResult(WWWResponse) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/TaskRunnerWithExponentialBackoff.cs:61)
Improbable.Unity.Core.CloudAssemblyArtifactResolver:<Start>m__4(WWWResponse) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Core/CloudAssemblyArtifactResolver.cs:88)
Improbable.Unity.Util.<SendRequestCoroutine>c__Iterator0:MoveNext() (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/WWWRequest.cs:65)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
 -[WorkerLogger:Unity]
[improbable.bridge.logging.EngineLogMessageHandler] [Worker: UnityWorker0] Exception: Failed to retrieve assembly list: Failed to receive data
 in Improbable.Unity.Entity.DefaultTemplateProvider.OnAssetResolveFailed (System.Exception err) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Assets/DefaultTemplateProvider.cs:173)
Improbable.Unity.Core.CloudAssemblyArtifactResolver.<Start>m__3 (System.String errorMessage) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Core/CloudAssemblyArtifactResolver.cs:142)
Improbable.Unity.Util.TaskRunnerWithExponentialBackoff`1[Improbable.Unity.Util.WWWResponse].ProcessResult (Improbable.Unity.Util.WWWResponse response) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/TaskRunnerWithExponentialBackoff.cs:62)
Improbable.Unity.Core.CloudAssemblyArtifactResolver.<Start>m__4 (Improbable.Unity.Util.WWWResponse response) (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Core/CloudAssemblyArtifactResolver.cs:88)
Improbable.Unity.Util.WWWRequest+<SendRequestCoroutine>c__Iterator0.MoveNext () (at C:/Projects/NeonExile/workers/unity/Assets/Plugins/Improbable/Sdk/Src/Unity/Util/WWWRequest.cs:65)
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress)
 -[WorkerLogger:Unity]

We have switched to using the New/Experimental Build System which uses the BasicProvider instead of the Default one, which works fine

Thanks