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 forRLMError
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 onSyncError
(orRLMServerLogURLKey
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 thehttpStatusCode
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 asRLMObjectId
toObjectId
. 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.