Old Client Error - Please Help

Hi, I add a new string field in my model.
I activate develop mode, new field is added, but all old client have error.

String Field are optional on schema, I have not ever this error in past

This is log:

2022-08-26 11:10:42.226 Error: Connection[2]: Session[2]: Failed to integrate downloaded changesets: Failed to parse, or apply received changeset: Update: No such field: 'Token' in class 'class_Oratore' (instruction target: Oratore["cs-OR53"].Token, version: 18012, last_integrated_remote_version: 2, origin_file_ident: 3571, timestamp: 241431245890)
Exception backtrace:
0   librealm-wrappers.dylib             0x0000000111aa72f2 _ZN5realm4sync12_GLOBAL__N_125throw_bad_transaction_logENSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE + 34
1   librealm-wrappers.dylib             0x0000000111aa711c _ZNK5realm4sync18InstructionApplier19bad_transaction_logERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE + 1260
2   librealm-wrappers.dylib             0x0000000111aaccad _ZN5realm4sync18InstructionApplier12PathResolver8on_errorERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE + 13
3   librealm-wrappers.dylib             0x0000000111aad1ca _ZN5realm4sync18InstructionApplier12PathResolver13resolve_fieldERNS_3ObjENS0_12InternStringE + 410
4   librealm-wrappers.dylib             0x0000000111aa930f _ZN5realm4sync18InstructionApplier12PathResolver7resolveEv + 111
5   librealm-wrappers.dylib             0x0000000111aa91f1 _ZN5realm4sync18InstructionApplierclERKNS0_5instr6UpdateE + 81
6   librealm-wrappers.dylib             0x0000000111ac7f67 _ZN5realm4sync13ClientHistory27integrate_server_changesetsERKNS0_12SyncProgressEPKyPKNS0_11Transformer15RemoteChangesetEmRNS0_11VersionInfoENS0_18DownloadBatchStateERNS_4util6LoggerENSE_14UniqueFunctionIFvRKNSt3__110shared_ptrINS_11TransactionEEEEEEPNS1_20SyncTransactReporterE + 1431
7   librealm-wrappers.dylib             0x0000000111ad92c5 _ZN5realm4sync10ClientImpl7Session20integrate_changesetsERNS0_17ClientReplicationERKNS0_12SyncProgressEyRKNSt3__16vectorINS0_11Transformer15RemoteChangesetENS8_9allocatorISB_EEEERNS0_11VersionInfoENS0_18DownloadBatchStateE + 149
9   librealm-wrappers.dylib             0x0000000111ad5ec5 _ZN5realm5_impl14ClientProtocol22parse_message_receivedINS_4sync10ClientImpl10ConnectionEEEvRT_NSt3__117basic_string_viewIcNS8_11char_traitsIcEEEE + 11509
10  librealm-wrappers.dylib             0x0000000111ad04f4 _ZN5realm4sync10ClientImpl10Connection33websocket_binary_message_receivedEPKcm + 52
11  librealm-wrappers.dylib             0x0000000111b319d6 _ZN12_GLOBAL__N_19WebSocket17frame_reader_loopEv + 1430
12  librealm-wrappers.dylib             0x0000000111b257bd _ZN5realm4util7network7Service9AsyncOper22do_recycle_and_executeINS0_14UniqueFunctionIFvNSt3__110error_codeEmEEEJRS7_RmEEEvbRT_DpOT0_ + 157
13  librealm-wrappers.dylib             0x0000000111b251cc _ZN5realm4util7network7Service14BasicStreamOpsINS1_3ssl6StreamEE16BufferedReadOperINS0_14UniqueFunctionIFvNSt3__110error_codeEmEEEE19recycle_and_executeEv + 140
14  librealm-wrappers.dylib             0x0000000111b27605 _ZN5realm4util7network7Service4Impl3runEv + 645
15  librealm-wrappers.dylib             0x00000001119c2140 _ZNSt3__1L14__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEZN5realm5_impl10SyncClientC1ENS2_INS7_4util6LoggerENS4_ISB_EEEERKNS7_16SyncClientConfigENS_8weak_ptrIKNS7_11SyncManagerEEEEUlvE0_EEEEEPvSN_ + 176
8   librealm-wrappers.dylib             0x0000000111a9f162 _ZN5realm4sync10ClientImpl7Session29initiate_integrate_changesetsEyNS0_18DownloadBatchStateERKNSt3__16vectorINS0_11Transformer15RemoteChangesetENS4_9allocatorIS7_EEEE + 114
16  libsystem_pthread.dylib             0x00007ff8037ec4e1 _pthread_start + 125
2022-08-26 11:10:42.226 Info: Connection[2]: Connection closed due to error
17  libsystem_pthread.dylib             0x00007ff8037e7f6b thread_start + 15

Thanks
Luigi

Can you file a support ticket for this. It looks like a bug in the sync client or the server, but without the server logs, it’ll be next to impossible to track down.

We have the same error on adding a new optional field to the scheme for old clients. Previously it was possible to update the scheme in advance and then update clients. Currently, it looks like we need to force update all clients on any scheme change which is problematic.

Connection[1]: Session[1]: Failed to integrate downloaded changesets: Failed to apply received changeset: Update: No such field: 'i' in class 'class_TransactionV2RealmModel' (instruction target: TransactionV2RealmModel[ObjectId{636edb3f02c9f6da735af02d}].i, version: 190, last_integrated_remote_version: 1, origin_file_ident: 89786, timestamp: 266417971456). Please contact support.
Connection[1]: Session[1]: Sending: ERROR "Failed to apply received changeset: Update: No such field: 'i' in class 'class_TransactionV2RealmModel' (instruction target: TransactionV2RealmModel[ObjectId{636edb3f02c9f6da735af02d}].i, version: 190, last_integrated_remote_version: 1, origin_file_ident: 89786, timestamp: 266417971456). Please contact support." (error_code=212, session_ident=1)
[Info] Connection[1]: Session[1]: Received: ERROR "Synchronization no longer possible for client-side file" (error_code=217, try_again=false, error_action=ClientReset)
[Info] Connection[1]: Disconnected

@Luigi_De_Giacomo have you been able to resolve the issue?

Looks like the server-side issue that was resolved so not sure why are we facing it half year after a fix Flexible Sync and Optional Changes · Issue #1186 · realm/realm-kotlin · GitHub

Maybe because we are using partition-based sync and the fix for the flexible-sync