Interviewer app crashes when Map dashboard is opened - Rebirth

Hello dear Survey Solution’s community !

I am getting the exact same problem as in this (old) topic :
Interviewer app crashes when Map dashboard is opened - Survey Solutions user community

This occurs with three different tablet models, for wich maps used to work.
We are using the 25.01.2 version (with maps).

Any help on this would be super appreciated, and I am committed to provide all the info necessary to resolve the issue.

Thanks in advance,
Noé Barthelemy, Survey Solutions Referee at the Institute of public statistics of New Caledonia.

PS : Here are the logs :

10:45:03[EnumeratorAuditLogService][Info][OpenApplication {“Type”:“OpenApplication”}]
10:45:03[M202103291222_MoveMapsFiles][Warn][M202103291222_MoveMapsFiles: moving map files from /storage/emulated/0/TheWorldBank/Shared/MapCache/ to /storage/emulated/0/TheWorldBank/Shared/MapCache/primary]
10:45:34[EnumeratorAuditLogService][Info][Relink {“Type”:“Relink”}]
10:45:38[NearbyConnection][Info][[STOP ALL]]
10:45:47[0, Culture=neutral, PublicKeyToken=null]]][Error][Android.Runtime.JavaProxyThrowable: Exception_WasThrown, Android.Runtime.JavaProxyThrowable]Android.Runtime.JavaProxyThrowable: Exception_WasThrown, Android.Runtime.JavaProxyThrowable

— End of managed Android.Runtime.JavaProxyThrowable stack trace —
android.runtime.JavaProxyThrowable: [System.ArgumentNullException]: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference
at Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(Unknown Source:0)
at WB.UI.Shared.Extensions.ViewModels.BaseMapInteractionViewModel`1+<>c__DisplayClass64_0[[WB.UI.Shared.Extensions.ViewModels.MapDashboardViewModelArgs, WB.UI.Shared.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].b__1(Unknown Source:0)
at MvvmCross.Base.MvxMainThreadAsyncDispatcher+<>c__DisplayClass0_0.b__0(Unknown Source:0)
at MvvmCross.Base.MvxMainThreadAsyncDispatcher+<>c__DisplayClass1_0+<b__0>d.MoveNext(Unknown Source:0)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Unknown Source:0)
at System.Threading.Tasks.Task+<>c.b__128_0(Unknown Source:0)
at Android.App.SyncContext+<>c__DisplayClass2_0.b__0(Unknown Source:0)
at Java.Lang.Thread+RunnableImplementor.Run(Unknown Source:0)
at Java.Lang.IRunnableInvoker.n_Run(Unknown Source:0)
at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(Unknown Source:0)
at mono.java.lang.RunnableImplementor.n_run(Native Method)
at mono.java.lang.RunnableImplementor.run(RunnableImplementor.java:31)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8751)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

— End of managed Android.Runtime.JavaProxyThrowable stack trace —
android.runtime.JavaProxyThrowable: [System.ArgumentNullException]: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference
at Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(Unknown Source:0)
at WB.UI.Shared.Extensions.ViewModels.BaseMapInteractionViewModel1+<>c__DisplayClass64_0[[WB.UI.Shared.Extensions.ViewModels.MapDashboardViewModelArgs, WB.UI.Shared.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].<UpdateBaseMap>b__1(Unknown Source:0) at MvvmCross.Base.MvxMainThreadAsyncDispatcher+<>c__DisplayClass0_0.<ExecuteOnMainThreadAsync>b__0(Unknown Source:0) at MvvmCross.Base.MvxMainThreadAsyncDispatcher+<>c__DisplayClass1_0+<<ExecuteOnMainThreadAsync>b__0>d.MoveNext(Unknown Source:0) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Unknown Source:0) at System.Threading.Tasks.Task+<>c.<ThrowAsync>b__128_0(Unknown Source:0) at Android.App.SyncContext+<>c__DisplayClass2_0.<Post>b__0(Unknown Source:0) at Java.Lang.Thread+RunnableImplementor.Run(Unknown Source:0) at Java.Lang.IRunnableInvoker.n_Run(Unknown Source:0) at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(Unknown Source:0) at mono.java.lang.RunnableImplementor.n_run(Native Method) at mono.java.lang.RunnableImplementor.run(RunnableImplementor.java:31) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8751) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) |AndroidEnvironment.UnhandledException => EnumeratorSetup1.<.ctor>b__0_1 => EnumeratorSetup1.ProcessException 10:45:47[0, Culture=neutral, PublicKeyToken=null]]][Error][System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference]System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference at Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(Geometry , SpatialReference ) at WB.UI.Shared.Extensions.ViewModels.BaseMapInteractionViewModel1.<>c__DisplayClass64_0[[WB.UI.Shared.Extensions.ViewModels.MapDashboardViewModelArgs, WB.UI.Shared.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].b__1()
at MvvmCross.Base.MvxMainThreadAsyncDispatcher.<>c__DisplayClass0_0.b__0()
at MvvmCross.Base.MvxMainThreadAsyncDispatcher.<>c__DisplayClass1_0.<b__0>d.MoveNext()
— End of stack trace from previous location —
at System.Threading.Tasks.Task.<>c.b__128_0(Object state)
at Android.App.SyncContext.<>c__DisplayClass2_0.b__0()
at Java.Lang.Thread.RunnableImplementor.Run()
at Java.Lang.IRunnableInvoker.n_Run(IntPtr jnienv, IntPtr native__this)
at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(_JniMarshal_PP_V callback, IntPtr jnienv, IntPtr klazz)|AndroidEnvironment.UnhandledException => EnumeratorSetup1.<.ctor>b__0_1 => EnumeratorSetup1.ProcessException
10:45:47[0, Culture=neutral, PublicKeyToken=null]]][Error][System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference]System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference
at Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(Geometry , SpatialReference )
at WB.UI.Shared.Extensions.ViewModels.BaseMapInteractionViewModel1.<>c__DisplayClass64_0[[WB.UI.Shared.Extensions.ViewModels.MapDashboardViewModelArgs, WB.UI.Shared.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].<UpdateBaseMap>b__1() at MvvmCross.Base.MvxMainThreadAsyncDispatcher.<>c__DisplayClass0_0.<ExecuteOnMainThreadAsync>b__0() at MvvmCross.Base.MvxMainThreadAsyncDispatcher.<>c__DisplayClass1_0.<<ExecuteOnMainThreadAsync>b__0>d.MoveNext() --- End of stack trace from previous location --- at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state) at Android.App.SyncContext.<>c__DisplayClass2_0.<Post>b__0() at Java.Lang.Thread.RunnableImplementor.Run() at Java.Lang.IRunnableInvoker.n_Run(IntPtr jnienv, IntPtr native__this) at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(_JniMarshal_PP_V callback, IntPtr jnienv, IntPtr klazz)|RuntimeNativeMethods.monodroid_unhandled_exception => EnumeratorSetup1.<.ctor>b__0_2 => EnumeratorSetup`1.ProcessException
10:45:55[EnumeratorAuditLogService][Info][FinishInstallation {“ServerUrl”:“https://OUR SEVRER ADRESS”,“Type”:“FinishInstallation”}]
10:45:55[EnumeratorAuditLogService][Info][Login {“UserName”:“AR_003”,“Type”:“Login”}]
10:46:02[NearbyConnection][Info][[STOP ALL]]
10:46:03[0, Culture=neutral, PublicKeyToken=null]]][Error][Android.Runtime.JavaProxyThrowable: Exception_WasThrown, Android.Runtime.JavaProxyThrowable]Android.Runtime.JavaProxyThrowable: Exception_WasThrown, Android.Runtime.JavaProxyThrowable

— End of managed Android.Runtime.JavaProxyThrowable stack trace —
android.runtime.JavaProxyThrowable: [System.ArgumentNullException]: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference
at Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(Unknown Source:0)
at WB.UI.Shared.Extensions.ViewModels.BaseMapInteractionViewModel`1+<>c__DisplayClass64_0[[WB.UI.Shared.Extensions.ViewModels.MapDashboardViewModelArgs, WB.UI.Shared.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].b__1(Unknown Source:0)
at MvvmCross.Base.MvxMainThreadAsyncDispatcher+<>c__DisplayClass0_0.b__0(Unknown Source:0)
at MvvmCross.Base.MvxMainThreadAsyncDispatcher+<>c__DisplayClass1_0+<b__0>d.MoveNext(Unknown Source:0)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Unknown Source:0)
at System.Threading.Tasks.Task+<>c.b__128_0(Unknown Source:0)
at Android.App.SyncContext+<>c__DisplayClass2_0.b__0(Unknown Source:0)
at Java.Lang.Thread+RunnableImplementor.Run(Unknown Source:0)
at Java.Lang.IRunnableInvoker.n_Run(Unknown Source:0)
at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(Unknown Source:0)
at mono.java.lang.RunnableImplementor.n_run(Native Method)
at mono.java.lang.RunnableImplementor.run(RunnableImplementor.java:31)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8751)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

— End of managed Android.Runtime.JavaProxyThrowable stack trace —
android.runtime.JavaProxyThrowable: [System.ArgumentNullException]: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference
at Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(Unknown Source:0)
at WB.UI.Shared.Extensions.ViewModels.BaseMapInteractionViewModel1+<>c__DisplayClass64_0[[WB.UI.Shared.Extensions.ViewModels.MapDashboardViewModelArgs, WB.UI.Shared.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].<UpdateBaseMap>b__1(Unknown Source:0) at MvvmCross.Base.MvxMainThreadAsyncDispatcher+<>c__DisplayClass0_0.<ExecuteOnMainThreadAsync>b__0(Unknown Source:0) at MvvmCross.Base.MvxMainThreadAsyncDispatcher+<>c__DisplayClass1_0+<<ExecuteOnMainThreadAsync>b__0>d.MoveNext(Unknown Source:0) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Unknown Source:0) at System.Threading.Tasks.Task+<>c.<ThrowAsync>b__128_0(Unknown Source:0) at Android.App.SyncContext+<>c__DisplayClass2_0.<Post>b__0(Unknown Source:0) at Java.Lang.Thread+RunnableImplementor.Run(Unknown Source:0) at Java.Lang.IRunnableInvoker.n_Run(Unknown Source:0) at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(Unknown Source:0) at mono.java.lang.RunnableImplementor.n_run(Native Method) at mono.java.lang.RunnableImplementor.run(RunnableImplementor.java:31) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8751) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) |AndroidEnvironment.UnhandledException => EnumeratorSetup1.<.ctor>b__0_1 => EnumeratorSetup1.ProcessException 10:46:03[0, Culture=neutral, PublicKeyToken=null]]][Error][System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference]System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference at Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(Geometry , SpatialReference ) at WB.UI.Shared.Extensions.ViewModels.BaseMapInteractionViewModel1.<>c__DisplayClass64_0[[WB.UI.Shared.Extensions.ViewModels.MapDashboardViewModelArgs, WB.UI.Shared.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].b__1()
at MvvmCross.Base.MvxMainThreadAsyncDispatcher.<>c__DisplayClass0_0.b__0()
at MvvmCross.Base.MvxMainThreadAsyncDispatcher.<>c__DisplayClass1_0.<b__0>d.MoveNext()
— End of stack trace from previous location —
at System.Threading.Tasks.Task.<>c.b__128_0(Object state)
at Android.App.SyncContext.<>c__DisplayClass2_0.b__0()
at Java.Lang.Thread.RunnableImplementor.Run()
at Java.Lang.IRunnableInvoker.n_Run(IntPtr jnienv, IntPtr native__this)
at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(_JniMarshal_PP_V callback, IntPtr jnienv, IntPtr klazz)|AndroidEnvironment.UnhandledException => EnumeratorSetup1.<.ctor>b__0_1 => EnumeratorSetup1.ProcessException
10:46:03[0, Culture=neutral, PublicKeyToken=null]]][Error][System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference]System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, outputSpatialReference
at Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(Geometry , SpatialReference )
at WB.UI.Shared.Extensions.ViewModels.BaseMapInteractionViewModel1.<>c__DisplayClass64_0[[WB.UI.Shared.Extensions.ViewModels.MapDashboardViewModelArgs, WB.UI.Shared.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].<UpdateBaseMap>b__1() at MvvmCross.Base.MvxMainThreadAsyncDispatcher.<>c__DisplayClass0_0.<ExecuteOnMainThreadAsync>b__0() at MvvmCross.Base.MvxMainThreadAsyncDispatcher.<>c__DisplayClass1_0.<<ExecuteOnMainThreadAsync>b__0>d.MoveNext() --- End of stack trace from previous location --- at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state) at Android.App.SyncContext.<>c__DisplayClass2_0.<Post>b__0() at Java.Lang.Thread.RunnableImplementor.Run() at Java.Lang.IRunnableInvoker.n_Run(IntPtr jnienv, IntPtr native__this) at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(_JniMarshal_PP_V callback, IntPtr jnienv, IntPtr klazz)|RuntimeNativeMethods.monodroid_unhandled_exception => EnumeratorSetup1.<.ctor>b__0_2 => EnumeratorSetup`1.ProcessException
10:46:36[EnumeratorAuditLogService][Info][OpenApplication {“Type”:“OpenApplication”}]

Maybe it is a permission issue for the app, resulting in it not being able to write maps in this folder “/storage/emulated/0/TheWorldBank/Shared/MapCache/primary” ?

What base map are you using?

I’m not sure if that is what you are refering to, but usually what we do is generating our own .tif maps, and use them in the maps dashboard.
We do not have (or need) online maps (thus we have no ESRI key) but I believe this is not related to the issue.
Is that what you wanted to know ?

There is potentially broken .tif file where SpatialReference is either invalid or incorrect from the perspective of ESRI SDK that is used in the application.
You may try to identify the proken file on test device.
If it’s not an issue for you would you mind sharing it with us?

I can definitely share those maps !
How would you like to proceed ?

  1. Create an issue ticket at GitHub and attach an example file there which is sufficient to reproduce the issue.
  2. In the ticket itself describe how the map file was produced (which software, version, settings were used).
  3. Attach any additional information like logs, error messages, screenshots.

@Noe_Barthelemy , did you have a chance to open the issue with the example file?

if yes, please give the ticket #, or if no, attach to Interviewer crash on Map Dashboard · Issue #3702 · surveysolutions/surveysolutions · GitHub

Also, has GDAL been set up on your server? Was it set up before the map file import?

Was the map imported in the same version as you are using now? (25.01.2) or was it imported in an earlier version (then which one?).

Hello @sergiy!

Thanks for your replies, and my apologies for the delay.

It turns out that Survey Solutions Headquarters did not reject my .TIF maps, even though they were not in the WGS 84 projection format. They were successfully downloaded by the Interviewer App, but when displayed, they caused the app to crash.

Our cartographer provided me with a set of .tpk files instead, which worked perfectly!

Problem solved, but perhaps you could clarify in the documentation that not all projections are supported by the Interviewer App? It might help prevent similar issues for other users.
Digital Map Formats

Thanks for all the help, as always :slight_smile:
Best,
Noé

PS : The projection format of my .TIF files was the “RGNC91-93 / Lambert New Caledonia”

@Noe_Barthelemy ,

thank you for providing this additional information.

After looking into it, I could identify at least two files which are not properly displayed by Survey Solutions Interviewer in the map dashboard, but I could not reproduce the actual crashing of the software that you’ve originally reported.

Could you please:

  1. supply an example map file (any size and territory) with which the crash reproducibly occurs?
  2. indicate whether GDAL is set up on your server and which version?
  3. indicate what you are seeing as the WKID for the file with which the crash occurred? and for the corrected TPK file? (in Survey Solutions’ map details).

Thank you!