So the question basically is why NSManagedObjectContext returns NO from
[context save:&error];
and the error is nil?
This is done on the main thread, right after context was created and its persistent store is not nil. And the changes seem to be saved to the database, but according to the apple's reference it's the return value, not the error indicates if the save was successful.