Signal crash, after no more free space "Problem Retrieving Data"
Hi I got same issue as lot of people after no more free space on my iPhone, I make more space but Signal app still crash
My iPhone was running out of space and I opened signal. Now after freeing up space the Signal app says "Problem Retrieving Data" and immediately crashes when I click continue. Is there no way to recover the data?
I can't sent report with the tap 8 times, because app crash before the report option, please fix it I don't want to lose my personal data
Bug description
When I start Signal, I get the "Problem Retrieving Data" screen. After confirming it, the all displays that it is now recovering the database but crashes after 10 seconds. There is no way to skip the recovery or retrieve debug logs.
It might be the case that this was triggered by a full device storage, but now there is >1GB space free.
Steps to reproduce
Start app Immediately get "Problem Retrieving Data" screen Click continue For 10 seconds, get recovery screen Actual result: Describe here what happens after you run the steps above (i.e. the buggy behaviour)
App crashes without Error message or debug log No access to existing or new messages, not able to send messages Expected result: Describe here what should happen after you run the steps above (i.e. what would be the correct behaviour)
Successful Recovery Able to start Signal and access messages
Device info
Device: iPhone 12 Pro
iOS version: 17.3.1
Signal version: 7.11
Link to debug log
Log from app not available Log from iOS can't be send to signal because app crash before
I have encountered the same issue. My iPhone storage was full and I opened Signal and it crashed. Next time I opened Signal, it gave me the same error as described above ("Problem Retrieving Data"). When trying to retrieve data, it reaches 57% and then tells me that data cannot be retrieved and I am supposed to reset Signal completely which I do not want to do as I do not want to lose all my messages and media data. Interestingly enough I am still receiving new messages and they pop up on my home screen but I have no way to access them as I run into "problem retrieving data" again. Any new insights what I can do? I have also posted this in #5811
exact same problem here
exact same problem here
did you find a solution?
any update?
Same here. The phone never quite reached 100% full as far as I can tell, but it's possible that the OS prevented Signal from eg. creating a temporary file. My phone's database is c. 3.5GB and storage may have gotten as low as 2GB free, in case this is a clue.
Now the situation seems bad, because the app won't start, instead complaining that the database can't be opened (presumably corrupted). I would just uninstall and reinstall onto the phone and then sync from my latest copy of application data on my laptop's Signal Desktop, but my memory of doing something like this in the past is that Signal is not very flexible about how it syncs and which device has main control of the account. I don't think I can transfer control of my account from the laptop back to a freshly-installed phone, instead it has to be passed from one phone installation to the next, which is now impossible.
I've tried to send the crash logs, but when I give it permission to send, the iOS app complains that it can't find the logs.
Let me know if there are steps I can take to help debug the issue—for example, I would be able to dump my application data locally and examine the files if there are specific things I should look for.
Signal is not very flexible about how it syncs and which device has main control of the account.
Confirmed my suspicions by reading some official docs on how to transfer app data: seems that a clean install on the phone will indeed break my chain of trust or whatever the limitation is, because this would almost certainly match the "cleared your phone" case for not being able to restore messages or transfer the account.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I can confirm that the problem has been here since last year, and no update has solved it.
I have emailed the team, and was assured the team are working on it (last year). It's really frustrating since there is no way to export/backup messages, and I've been using signal for over five years and have a 25GB+ database. While I do have a desktop app linked, it's now telling me to login using my phone (which I still can't because the recovery is still failing).
My friend got the same issue actually. I believe the problem is that the database becomes corrupted when signal tries to write to it and runs out of storage space. Then even after making more space, the database remains corrupted. You can fix the issue by deleting the app and all of its data and then installing it again.
Here is the crash zip:
3f03a0cff4e9b0b08aa723ea918f35897bcef0057585733f5fed59a84e0fa96d.zip
Interesting stack trace:
2025/07/04 03:36:48:667 ERR❤️ [NotificationService.swift:123 _didReceive(_:logger:)]: Couldn't load database: SQLite error 1: Optional("SQL logic error") (extended result code: 1)
2025/07/04 03:37:06:019 INF💛 [rust/bridge/ffi/src/logging.rs:103]: Initializing libsignal version:0.73.2
2025/07/04 03:37:06:019 INF💛 [NSEEnvironment.swift:123 setUp(logger:)]: [NSE] pid: 20633, memoryUsage: 3719872 {{xxxx-xx-xx-xxx13B}}
2025/07/04 03:37:06:039 ERR❤️ [OWSSwiftUtils.swift:67 owsFail(_:logger:file:function:line:)]: 0 SignalNSE 0x…074 SignalNSE + 41076
1 SignalServiceKit 0x…e20 block_destroy_helper + 109520
2 SignalServiceKit 0x…d3c block_destroy_helper + 109292
3 SignalNSE 0x…e28 SignalNSE + 28200
4 SignalNSE 0x…6b5 SignalNSE + 18101
5 SignalNSE 0x…52d SignalNSE + 25901
6 SignalServiceKit 0x…f75 __swift_memcpy101_8 + 110045
7 SignalServiceKit 0x…689 __swift_mutable_project_boxed_opaque_existential_1Tm + 4077
8 libswift_Concurrency.dylib 0x…e39 xxxx-xx-xx-xxx093 + 433721
Is there a way we could provide the user the option to delete the corrupted database when this happens? Not a perfect solution but at least it would offer a way for people to fix it
I've been encountering this issue (same as #5658 and #5395 ) but the complete uninstall and reinstall has not worked for me. I would be okay with losing my history if it meant I could get the app working, but no luck so far.
Same issue here. Big bummer especially given the lack of features regarding freeing up space - no way to transfer messages between mobile and desktop, no way to find big files and get rid of them.
Is there a way to get the (SQLite?) database from the smartphone? That way we could try to repair it on a computer.
Or restore the Signal database from a previous smartphone full backup?
After 5-7 days, multiple restarts of the phone, freeing up couple of GBs of storage, the app has recovered.
After 5-7 days, multiple restarts of the phone, freeing up couple of GBs of storage, the app has recovered.
@KaloyanTanev That's interesting! Has your data been fully recovered? Or has it unfortunately been lost?
@baknu It was fully recovered. Apart from small subset of messages that I've exchanged during that 5-7 days period using my laptop. The majority of them were recovered on the phone though.
@KaloyanTanev Oh, nice! How much space have you freed up? More than the volume of the Signal data? (Thought: maybe SQLite needs to make a full copy of the database to recover it.)
@baknu Definitely less. My device has 64GB, Signal takes ~28GB, I freed up ~6GB (so I had 58/64 occupied).
It's critically important that I recover my complete historical Signal message data after encountering a “Data Not Recovered” issue on my iPhone16ProMax iOS v18.5, Signal v7.82.
I'm assuming my above symptoms match this (#5815) github issue.
Overview
Signal devs (core or otherwise): can you pls comment on the viability of my 2 exploration paths below, and can you suggest any other paths?
I'm exploring two paths:
- Path Alpha: try fixing the SQLite database "underneath the hood" and reintegrating (pls try not too laugh too hard 🙃) or at least reacquiring the data.
- Path Beta: hope and pray it fixes itself by repetitive effort.
Path Alpha
@C-Duv writes:
Is there a way to get the (SQLite?) database from the smartphone? That way we could try to repair it on a computer.
Yeah, this.
- if Signal-iOS's database is indeed SQLite-based (and my initial ag-aka-grep code-tree search shows 800+ "sqlite" line matches, so it seems like a solid bet)...
- extract or copy the database (single file or file set) from my iPhone to a macOS or Linux computer
- repair said SQLite database
- reintegrate the SQLite database into a working, "pimary"/non-Linked Signal iOS client. (I'm guessing the initial probability of this is about the same as a snowball's chance in hell. But I have swdev experience, and I might be willing to build my own Signal-iOS client to try and hack this. Or something.)
- if
#3= yes but#4= no, then at least I reacquire my Signal message history, which is critically important to me
Path Beta
In the meantime, I’ll be attempting KaloyanTanev’s “reboot many times” workaround in the (admittedly desperate) hope that it may restore my entire Signal install and message history, like it was before it crashed.
And in this case, it's perfectly acceptable if any recently-received messages (since my iPhone "primary" Signal instance went offline) are not restored. I mostly just want to reinstate the years and years of message history.
After 5-7 days, multiple restarts of the phone, freeing up couple of GBs of storage, the app has recovered.
hi @KaloyanTanev, could you maybe share some more details? Did you not touch your device/the signal app for a while before it started working again on the next try? How often did you restart? Did you keep the 6GB freed up for the whole 5-7 days?
@lp713
Did you not touch your device/the signal app for a while before it started working again on the next try?
I was using it as normal - browsing, chatting (not on Signal, obviously :)), listening to music, taking work calls, etc. I have checked the Signal app every other day if it fixed itself magically.
How often did you restart?
Probably 3-5 times in that period. I don't think it made any difference though.
Did you keep the 6GB freed up for the whole 5-7 days?
Nope, I believe some of them got filled up in that period. I can't give you exact numbers but I doubt it was more than 1GB that got filled.
Same issue here with an iPhone 13 that maxed out on memory. That iPhone can't read my messages but other, older Signal messages from others can still be reread. Only new ones from me give an error on that phone. On my side the messages (in and out) are visible without any problem.
So indeed, it seems a database that Signal uses gets corrupted when Signal runs into storage shortage.
How to get out of it? I now have to use Messages to reach this single user. Meanwhile that iPhone has more memory space after airdropping some long videos. But the database needs to get repaired! Preferably by Signal. Or does it work surely to wipe the Signal app completely and then restore from the Desktop app? The desktop might have a copy of only a month earlier before the issue started.
This is really a shame for such an important app. People rely on having their communication safely in the app.
@KaloyanTanev Thanks for the quick answer and the info!
I am wondering if the data corruption you encountered only included "short term" data of some sort and no essential table data which is why it got sorted out after a while. I suppose it's mostly about which type of data is corrupted in each individual case when Signal runs out of storage during the writing process
I've freed about 12 GB recently (2-3 days ago) and hoping KaloyanTanev's (re)solution will occur on my phone as well.
In the mean time I've been looking on ways to "extract" the SQLite database file:
The "Could Not Load Database" message comes from this database exception handling (line 235):
https://github.com/signalapp/Signal-iOS/blob/b46b4da32c5450ab5eb466c7a2fa77b76580e1ef/Signal/AppLaunch/AppDelegate.swift#L219-L243
It offers 2 actions:
- Submit Debug Log (the
submitDebugLogsAndCrashaction) - Reset App Data (the
wipeAppDataAndCrashaction)
It looks like the application has a "Database Integrity Check UI":
https://github.com/signalapp/Signal-iOS/blob/b46b4da32c5450ab5eb466c7a2fa77b76580e1ef/Signal/AppLaunch/SignalApp.swift#L412-L452
It can be accessed from 2 places:
- The application's settings (inaccessible when the application refuses to start):
https://github.com/signalapp/Signal-iOS/blob/b46b4da32c5450ab5eb466c7a2fa77b76580e1ef/Signal/src/ViewControllers/AppSettings/Internal/InternalSettingsViewController.swift#L95-L103
- The
submitDebugLogsWithDatabaseIntegrityCheckAndCrashaction, next to the samesubmitDebugLogsAndCrashaction from earlier in my message:
https://github.com/signalapp/Signal-iOS/blob/b46b4da32c5450ab5eb466c7a2fa77b76580e1ef/Signal/AppLaunch/AppDelegate.swift#L1242-L1310
But I can't find how to trigger it.
I am not sure if/when the following code get executed:
https://github.com/signalapp/Signal-iOS/blob/b46b4da32c5450ab5eb466c7a2fa77b76580e1ef/Signal/AppLaunch/AppDelegate.swift#L1039-L1053
But it seems to be the one deciding whether the corrupted database is recoverable or not.
The dabase file is signal.sqlite (complete file path returned by SDSDatabaseStorage.grdbDatabaseFileUrl()), with the Write-Ahead Logging (WAL) being signal.sqlite-wal (complete file path returned by SDSDatabaseStorage.databaseWalUrl()).
I am pretty sure the Signal application can "share" those files using iOS's share functionality, at least to make them accessible using the native File application with something like:
let activityViewController = UIActivityViewController(activityItems: ["Signal DB", SDSDatabaseStorage.grdbDatabaseFileUrl()], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)