Realm v10.32.1 Release Notes

Release Date: 2022-10-25 // over 1 year ago
  • โœจ Enhancements

    • ๐Ÿ‘Œ Improve performance of client reset with automatic recovery and converting top-level tables into embedded tables (Core #5897).
    • Realm.Error is now a typealias for RLMError rather than a manually-defined version of what the automatic bridging produces. This should have no effect on existing working code, but the manual definition was missing a few things supplied by the automatic bridging.
    • ๐Ÿ”€ Some sync errors sent by the server include a link to the server-side logs associated with that error. This link is now exposed in the serverLogURL property on SyncError (or RLMServerLogURLKey userInfo field when using NSError).

    ๐Ÿ›  Fixed

    • ๐Ÿ”€ Many sync and app errors were reported using undocumented internal error codes and/or domains and could not be progammatically handled. Some notable things which now have public error codes instead of unstable internal ones:
      • Realm.Error.subscriptionFailed: The server rejected a flexible sync subscription.
      • AppError.invalidPassword: A login attempt failed due to a bad password.
      • AppError.accountNameInUse: A registration attempt failed due to the account name being in use.
      • AppError.httpRequestFailed: A HTTP request to Atlas App Services completed with an error HTTP code. The failing code is available in the httpStatusCode property.
      • Many other less common error codes have been added to AppError.
      • All sync errors other than SyncError.clientResetError reported incorrect error codes. (since v10.0.0).
    • UserAPIKey.objectId was incorrectly bridged to Swift as RLMObjectId to ObjectId. This may produce warnings about an unneccesary cast if you were previously casting it to the correct type (since v10.0.0).
    • ๐Ÿ›  Fixed an assertion failure when observing change notifications on a sectioned result, if the first modification was to a linked property that did not cause the state of the sections to change. (Core #5912, since the introduction of sectioned results in v10.29.0)
    • ๐Ÿ›  Fix a use-after-free if the last external reference to an encrypted synchronized Realm was closed between when a client reset error was received and when the download of the new Realm began. (Core #5949, since 10.28.4).
    • ๐Ÿ›  Fix an assertion failure during client reset with recovery when recovering a list operation on an embedded object that has a link column in the path prefix to the list from the top level object. (Core #5957, since introduction of automatic recovery in v10.32.0).
    • Creating a write transaction which is rejected by the server due to it exceeding the maximum transaction size now results in a client reset error instead of synchronization breaking and becoming stuck forever (Core #5209, since v10).
    • Opening an unencrypted file with an encryption key would sometimes report a misleading error message that indicated that the problem was something other than a decryption failure (Core #5915, since 0.89.0).
    • ๐Ÿ›  Fix a rare deadlock which could occur when closing a synchronized Realm immediately after committing a write transaction when the sync worker thread has also just finished processing a changeset from the server (Core #5948).

    Compatibility

    • Realm Studio: 11.0.0 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 10.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 14.0.1.
    • CocoaPods: 1.10 or later.
    • Xcode: 13.1-14.1.

    Internal

    • โฌ†๏ธ Upgraded realm-core from 12.9.0 to 12.11.0.