Skip to content

Troubleshooting

Overview of common issues.

Request Gets Timeout But Response Is Returned

Problem: Sometimes an HTTP request gets java.net.SocketTimeoutException on the app after sending it, despite mobile services sending back the response correctly. Thus the error is not shown in mobile services logs or network traces.

Workaround: The reason for the timeout exception is, when there are many parallel HTTP requests sent to mobile services, the server may not be able to handle them in time. To solve this, the client code needs to set a large timeout value for read and write operations. See OkHttpClient for additional information on timeouts.

OkHttpClient okHttpClient = new OkHttpClient.Builder()
        .addInterceptor(...)
        .connectTimeout(60, TimeUnit.SECONDS)
        .readTimeout(60, TimeUnit.SECONDS)
        .writeTimeout(60, TimeUnit.SECONDS)
        .build();
ClientProvider.set(okHttpClient);

Upgrade H2 Database

Problem: H2 database 1.4.199 or earlier versions have critical vulnerabilities, but after upgrading the database to 1.4.200, opening the database generated with previous versions is problematic. Users cannot use the connection accounts feature without the correct version of the H2 database.

Fix: upgrade the existing H2 database to 1.4.200 if the application encounters issues (because the existing database is version 1.4.199 or lower). The user will see a message prompting them to run a script to upgrade the H2 database. The script is in the installer file. For Linux: Run upgradeH2Database.sh. For Mac OS: Run upgradeH2Database.sh. For Windows: Run upgradeH2Database.bat.


Last update: April 14, 2021