Realm sync offline not opening. Realm not behaving like offline-first. Works like online-only

Hi,

I’m working on Android Java Realm. Realm is behaving as online-first. Realm is not opening in Offline mode. Here is my code:

long startTime = System.currentTimeMillis();

app = new App(new AppConfiguration.Builder("app-id").build());

if (app.currentUser() != null) {

    Log.e(TAG, "onCreate: Realm user already logged in uid -> " + app.currentUser().getIdentities());

    SyncConfiguration config = new SyncConfiguration.Builder(app.currentUser())
            .initialSubscriptions(new SyncConfiguration.InitialFlexibleSyncSubscriptions() {
                @Override
                public void configure(Realm realm, MutableSubscriptionSet subscriptions) {
                    subscriptions.addOrUpdate(Subscription.create(
                            realm.where(RealmCustomerModel.class).equalTo("uid", app.currentUser().getId()))
                    );

                    subscriptions.addOrUpdate(Subscription.create(
                            realm.where(RealmTxnModel.class).equalTo("uid", app.currentUser().getId()))
                    );
                }
            }).build();

    Log.e(TAG, "Realm getInstance/Async started");

    Realm.getInstanceAsync(config, new Realm.Callback() {
        @Override
        public void onSuccess(Realm realm) {
            uiThreadRealm = realm;
            Log.e(TAG, "onSuccess: Realm getInstanceAsync success in " + (System.currentTimeMillis() - startTime) + "ms");
            populateUi();
            Realm.setDefaultConfiguration(config);
        }
    });
}

When online, Realm getInstanceAsync takes long time to load, based on network speed. On fast network it takes ~1000ms and on slow network it takes almost 10-20 seconds.

When offline, Realm getInstanceAsync callback is never called and getting multiple repeating logs of these types:

2023-11-21 19:58:57.841 26613-26796 REALM_SYNC              com.in                   E  Failed to resolve 'ws.asia-south1.gcp.realm.mongodb.com:443': Host not found (authoritative)
2023-11-21 19:58:57.845 26613-26796 REALM_JAVA              com.in                   W  Unknown error code: 'unknown:1999'
2023-11-21 19:58:57.845 26613-26796 REALM_JAVA              com.in                   W  Unknown error code: 'unknown:1999'
2023-11-21 19:58:57.846 26613-26796 REALM_JAVA              com.in                   E  Session Error[wss://realm.mongodb.com/]: UNKNOWN(unknown:1999): WebSocket: Resolve Failed
2023-11-21 19:58:58.634 26613-26796 REALM_SYNC              com.in                   E  Failed to resolve 'ws.asia-south1.gcp.realm.mongodb.com:443': Host not found (authoritative)
2023-11-21 19:58:58.634 26613-26796 REALM_JAVA              com.in                   W  Unknown error code: 'unknown:1999'
2023-11-21 19:58:58.635 26613-26796 REALM_JAVA              com.in                   W  Unknown error code: 'unknown:1999'
2023-11-21 19:58:58.635 26613-26796 REALM_JAVA              com.in                   E  Session Error[wss://realm.mongodb.com/]: UNKNOWN(unknown:1999): WebSocket: Resolve Failed
2023-11-21 19:59:00.191 26613-26796 REALM_SYNC              com.in                   E  Failed to resolve 'ws.asia-south1.gcp.realm.mongodb.com:443': Host not found (authoritative)
2023-11-21 19:59:00.193 26613-26796 REALM_JAVA              com.in                   W  Unknown error code: 'unknown:1999'
2023-11-21 19:59:00.194 26613-26796 REALM_JAVA              com.in                   W  Unknown error code: 'unknown:1999'
2023-11-21 19:59:00.194 26613-26796 REALM_JAVA              com.in                   E  Session Error[wss://realm.mongodb.com/]: UNKNOWN(unknown:1999): WebSocket: Resolve Failed

Is the configuration correct or am I doing something wrong?

1 Like

Can anyone provide any update on this?