Recently we've rolled out an update (Added a new property to an RLMObject subclass) , however it caused some crash log from user, after symbolicating the crash log, we're sure that crash is caused by Realm, but unable to determine the root cause of issue.
Seems like their might be multiple reason that could lead to this line
Is it possible to know why does it crash? This is the only clue I have.
Update:
Seems like it's related to a schema mismatch issue, but I'm sure I've bumped the schema version in this update (from 50 to 60), how is that possible?
I've used Realm for a couple years, only faced this issue during development (forgot to bump schema version after a property change), never faced this issue in a production environment.
Goals
Fix the crash
Expected Results
Not to crash
Actual Results
Crashed.
Steps to Reproduce
Unknown
Code Sample
N/A
Version of Realm and Tooling
v3.10.3
Realm framework version: v3.10.3
Realm Object Server version: v3.10.3
Xcode version: Xcode 10.1
iOS/OSX version: iOS 12
Dependency manager + version: Cocoapods v1.5
Recently we've rolled out an update (Added a new property to an RLMObject subclass) , however it caused some crash log from user, after symbolicating the crash log, we're sure that crash is caused by Realm, but unable to determine the root cause of issue.
Here is the crash log:
As it shows, it eventually crash on
RLMSetErrorOrThrow(NSError*, NSError* __autoreleasing*) + 7775688 (RLMUtil.mm:336)
However RLMUtil.mm L336 is
@throw RLMException(msg, @{NSUnderlyingErrorKey: error});
Seems like their might be multiple reason that could lead to this line Is it possible to know why does it crash? This is the only clue I have.
Update:
Seems like it's related to a schema mismatch issue, but I'm sure I've bumped the schema version in this update (from 50 to 60), how is that possible? I've used Realm for a couple years, only faced this issue during development (forgot to bump schema version after a property change), never faced this issue in a production environment.
RLMRealm.mm L319
RLMSetErrorOrThrow(RLMMakeError(RLMErrorSchemaMismatch, ex), error);
Thank you.