I faced a similar problem. Here you might be accessing realm object from different thread. For eg: You can use the dispatch queue, but there is a higher chance that the object you are trying to access is declared in another thread. You can have a realm object in any thread, but accessing a property of this realm object will lead to a crash. In my case, I was accessing an array of realm objects from a singleton which is initialized inside a different thread. Even if I added DispatchQueue closure it caused an error because the objects which I tried to access were in another thread.