views:

57

answers:

2

Hi guys,

This is a rather general question, as I don't have any solid evidence atm.

I have an iPhone app with about 20,000 users. It allows users to message each other, and saves those messages in core data. The only other thing it saves in core data is the users profile, a copy locally and a copy on the server.

I have a small percentage of users complaining that they receive messages but nothing shows, when they send a message (which immediately goes into core data then shows on screen) it disappears immediately. Nothing but a full restore seems to fix it, and from what I can gather, even a restore which involves them restoring a backup they just made doesn't fix it.

My first thought was that core data must have become corrupted in some way ... but the messages they attempt to send actually do send, and this would be impossible if their local profile had become corrupted too.

I've never been able to recreate it, or found anyone face to face who has had a similar problem.

Does anyone have any suggestions on what could occur in core data that could lead to a situation like this so I can start to try and track down the problem? I'd estimate it's happening with about 1% of users.

Once again, sorry for the generality of the question, but it's all I have to work with just now!

Thanks

** Edit

Just to clarify, deleting the app and reinstalling it, does not fix the problem when this happens.

** Edit

I just had some more information from a user who is suffering from the problem ... the information my app saved in core data still exists after the app has been deleted and re-installed, all of it. I have deleted and re-installed my app hundreds of times over the last year, on countless different devices, and every time I delete and re-install, all previous data stored in core data is completely erased .. yet for these users, this is not happening. Does this sound like an iPhone issue that basically requires a restore?

A: 

Does anyone have any suggestions on what could occur in core data that could lead to a situation like this so I can start to try and track down the problem?

About a zillion different things.

Your real problem is that you are trying to debug in a speculative fashion. To properly fix this bug, you first need to know how to reproduce the bug. There's no other way to know if you've fixed it after you've tried something.

I would not start by blaming the underlying frameworks like Core Data. Odds are your program is the one losing the data. Start with that assumption.

Shaggy Frog
"My first thought was that core data must have become corrupted in some way ... but the messages they attempt to send actually do send, and this would be impossible if their local profile had become corrupted too." ... I'm not trying to blame the underlying frameworks. What I'm hoping for is some kind of suggestion as to what can lead to my data in core data being screwed up, for example, if my code is accessing core data and the battery dies, would it handle it? If I know of any vulnerabilities in core data that commonly lead to problems, then I can try to reproduce the error and fix it
Steven
@Steven It's next to impossible to help you solve your problem. Your first step must always be to figure out how to reproduce a bug before it can be fixed. All the speculation in the world will probably be a waste of time.
Shaggy Frog