Trouble connecting to Sync Endpoint from ODK-X Services 2.1.4

I installed a new sync-endpoint 2.1.4 server and installed the matching client apps on a Samsung tablet running Android 9. When I click “Authenticate New User”, I get: “An internal error occurred: Internal Error. Please submit a bug report”. Here is the log on the tablet:

I/OdkSyncService: 2019-09-11 20:07:49.079 Sync Service onBind new client
---- flushing ----
I/AbsSyncBaseActivity: 2019-09-11 20:07:49.051 [onStart]
I/AbsSyncBaseActivity: 2019-09-11 20:07:49.073 [onResume] Attempting bind to sync service
I/LoginActivity: 2019-09-11 20:07:49.076 [onResume] getting LoginFragment
I/AbsSyncUIFragment: 2019-09-11 20:07:49.077 [2131230919] [onResume]
I/AbsSyncBaseActivity: 2019-09-11 20:07:49.100 [onServiceConnected] Bound to sync service
W/LoginFragment: 2019-09-11 20:07:49.185 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:49.286 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:49.386 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:49.487 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:49.589 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:49.690 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:49.791 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:49.893 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:49.994 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.097 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.198 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.301 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.404 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.506 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.609 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.711 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.814 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:50.917 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.020 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.122 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.225 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.327 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.428 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.530 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.633 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.735 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.836 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:51.939 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.040 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.141 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.242 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.343 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.445 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.546 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.648 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.749 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.852 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:52.956 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.058 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.163 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.265 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.367 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.468 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.570 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.675 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.776 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.879 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:53.984 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.089 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.191 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.293 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.395 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.496 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.601 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.706 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.808 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:54.909 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.023 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.123 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.224 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.325 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.426 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.526 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.628 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.729 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.832 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:55.935 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:56.037 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:56.139 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:56.241 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:56.344 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:56.445 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:56.546 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
I/AbsSyncBaseActivity: 2019-09-11 20:07:56.601 [onPause] Unbound to sync service
I/AbsSyncBaseActivity: 2019-09-11 20:07:56.601 [onPause]
I/AbsSyncBaseActivity: 2019-09-11 20:07:56.612 [onRestart]
I/AbsSyncBaseActivity: 2019-09-11 20:07:56.613 [onStart]
I/AbsSyncBaseActivity: 2019-09-11 20:07:56.614 [onResume] Attempting bind to sync service
I/SyncActivity: 2019-09-11 20:07:56.617 [onResume] getting SyncFragment
I/AbsSyncUIFragment: 2019-09-11 20:07:56.617 [2131230919] [onResume]
I/AbsSyncBaseActivity: 2019-09-11 20:07:56.637 [onServiceConnected] Bound to sync service
W/LoginFragment: 2019-09-11 20:07:56.649 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
D/AlertNProgessMsgFragmentMger: 2019-09-11 20:07:56.723 in void dismissProgressDialog() {
D/AlertNProgessMsgFragmentMger: 2019-09-11 20:07:56.723 in void dismissAlertDialog() {
W/LoginFragment: 2019-09-11 20:07:56.750 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:56.850 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
W/LoginFragment: 2019-09-11 20:07:56.950 [2131230919] [updateInterface] !msgManager.hasDialogBeenCreated()
I/AbsSyncBaseActivity: 2019-09-11 20:07:56.986 [onStop]
I/AbsSyncBaseActivity: 2019-09-11 20:07:56.987 [onDestroy]
I/AbsSyncUIFragment: 2019-09-11 20:07:56.987 [2131230919] [onDestroy]
I/AbsSyncBaseActivity: 2019-09-11 20:07:57.673 [onPause] Unbound to sync service
I/AbsSyncBaseActivity: 2019-09-11 20:07:57.673 [onPause]
I/AbsSyncBaseActivity: 2019-09-11 20:07:58.045 [onStop]
I/AbsSyncBaseActivity: 2019-09-11 20:07:58.046 [onDestroy]
I/AbsSyncUIFragment: 2019-09-11 20:07:58.047 [2131230919] [onDestroy]

The nginx log does not show anything for this transaction. The same client apk installed on another tablet with Android 5 connects to the server without a problem, and I can use a web browser to log in to the server from the Samsung tablet as well as other computers. The Samsung tablet was able to connect to a 2.1.2 Sync Endpoint server using either 2.1.2 or 2.1.3 clients, but now that I have had 2.1.4 installed the tablet will not install the older clients.

Hello.

Do you use SSL on your endpoint?

I’ve also experienced some connection issues, but mostly the other way around (ie android 5 not connecting) and suspect ssl handshaking issues…

Best regards
Emil

What version of Android OS is the tablet running ?

Ooops found that it was Android 9.

We just became aware of problem with authentication and Android 9. We will be working on a fix.

Thanks Waylon. Is there a place I can watch to know when the fix is released? Since my project is nearing the end of development, I can keep moving forward using the Android 5 tablet for now, but I would like to go back to testing on the Android 9 tablets when it is ready.

The next release 2.1.5 is scheduled to be released the last week of September.

That seems like to long of time to wait for this bug fix that is blocking people. We will likely put out a beta/preview release next week that will address this problem. If you are testing on the beta/preview release please let us know of other problems.

We will post in the releases category a beta/pre-release and I will cross reference it on this thread.

You can track progress on the issue here:

Here is a link to the pre-release with a fix for Android 9 authentication issues. Let us know how well it works.