-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Database Error #723
Comments
I'm getting this at the second start after the recent update for #729 . And by that I mean EVERY second time. New profile: Works first time, at second start I get this dialog. Delete all data > connect > works > at second start broken. Hope this is some weird problem with my system bc if not the recent update just wrecked the local data of all Signal Flatpak users... |
Another pointer: There were reports about keyring integration trashing the db weeks ago in another bug report #691 So I'm definitely not alone with this. |
Same here. Spent 30 minutes trying to find a fix but it doesn't work yet. Lost a long history unfortunately.
I wonder if the recent change regarding the system keyring requires user action to give more permissions (e.g. reading/writing the keyring)? Could it be possible to add these permissions via the |
Only way to fix it right now for me is by deleting all data, removing org.freedesktop.secrets via Flatseal and do a fresh setup. |
Thank you! 🙏 I can confirm that works as a workaround until the underlying issue is resolved. Definitely is related to |
This is typically not a flatpak issue but an issue of the password storage. Are you using kwallet, kwallet5, kwallet5, or gnome-keyring? You could use |
I'm using |
I can confirm that evades the problem. Is there also an environment variable to configure this, so we could set this via
I'm also using ❯ gnome-keyring version
gnome-keyring: 42.1 Using Key Rack I could see entries created for Signal. Of course, they aren't created anymore with |
This seems to be an error chain. Electron doesn't tell Signal the correct running instance ( |
Getting this issue as well now with the latest update. I expect as the latest update filters through there will be more people hitting this issue. |
I have the same issue, see here #729 (comment) :( |
I did some digging in the electron project and apparently this bug is known but was just closed with no fix? See bug: electron/electron#32598 |
In your case, do you use Gnome, KDE or xfce? There, chromium should be able to detect the desktop environment correctly and use the corresponding password store. However, e.g. for niche environments like i3, this detection will return "unknown" or fallback to "basic_string". If you want to use the gnome-keyring for generating and storing the encryption key, you must append the Without a proper log this can't be diagnosed why OPs message is shown. What you also could do is change your Fortunately, chromium supports a list of current desktops and it will use the first one it supports. I've added this to my
This will tell chromium to fallback to XFCE, if the first one is not supported (in my case |
I'm seeing this problem on GNOME though…
What kind of log do you need?
|
I'm getting the same error...time and time again. Do you need to add
|
I tried doing: flatpak run org.signal.Signal --password-store=gnome-libsecret The bug persisted so something else is a problem here. Also: [📦 org.signal.Signal ~]$ printenv XDG_CURRENT_DESKTOP
XFCE $ gnome-keyring version
gnome-keyring: 46.2 |
Same issue here -
|
Btw, if you got a backup of The file gets overwritten whenever you launch the app though, so while the issue is ongoing, you gotta restore the file before every launch. ps: I haven't tried the suggested workarounds in this thread yet; maybe they're better than this temp one, dunno. |
Sorry to ask so bluntly, but: Why is PR #729 not being reverted right now? It's clear that it broke Signal for nearly all users of the Flatpak (At least on GNOME I've yet to encounter anyone where it didn't destroy the local db). And yes, this destruction can't be reverted. But right now you can't use the current stable Flatpak at all, cause it will break again and again after deleting the data and doing a fresh setup. Unless you know one of the tricks to prevent this (like playing around with Flatseal), but this is nothing any regular users will (or should have to) know. What am I missing? |
I tried the three most recent commits available from the flathub repo:
The most recent one is just reverting the previous one. I'm probably missing something but how did this cause the database error; why would 295c break, while 0eda doesn't? Also obvious question, but given that the latest version breaks the app, is there a way to mark that update as bad so it stops getting pushed out to people? |
Are you sure you didn't experience #723 (comment) ? |
Not sure I understand. When I update to 295cc3f0e266ecec6a0971cbfeb8559c18d0a12d51116680aa241ec34471afab, I experience the database error described in this thread, which is what that comment describes. I got a bit lost between the several commits, reverts, and trying to match up the flathub hashes to github commits. |
The very first time (fresh install / no profile DB), Signal starts fine and writes its key to the keystore (gnome-keyring). The second time Signal starts, it fails to get its key from the keystore again and hence presents the user with a DB corruption error. At least that's what I experienced, same as what @sukahiroaki described in #723 (comment). So you might also experience this while switching between these revisions, I guessed... |
Specifically, I installed each of those three commits in turn, and re-launched signal several times on each. The database was only unreadable when launching commit 295cc3f0e266ecec6a0971cbfeb8559c18d0a12d51116680aa241ec34471afab several times. |
Can you start Signal with the We could add this switch as a workaround, so that it at least runs as before (until chromium, electron, and Signal have a fix). |
This is effectively the same as rolling back the commit that introduced the issue — with the bonus of not having people swarming on the issue tracker. Moreover, there are plenty of Signal users who aren't going to be able to do it or even find out how to do it. This issue is almost generic for all Electron applications that rely on Electron's safeStorage, regardless of the packaging. It's happening with Wire and many others. The implementation and fallback mechanism for Signal is quite poor though (my opinion), to the point that the application becomes useless, and the database corrupted. |
I can confirm that always starting the broken build with This issue has existed for four days, but I only got the update on both of my systems today. The sooner a fix is pushed the fewer systems will be borked. |
Hello!
Thank you |
I managed to resolve this due to finding an unintentional backup of my config file located at ~/.config/Signal/config.json from when I used to use a non-flatpak version of Signal, whereas my current config file (which only conatined the encrypted key) is located at ~/.var/app/org.signal.Signal/config/Signal/config.json. This may be helpful to anyone who previously used a non-flatpak signal package before switching to flatkpak, or vice versa, due to different package formats using different config file paths. |
I managed to resolve it because I realised I take regular file system snapshots using ZFS, and was able to find the backup of the file in ~/.config/ from earlier in the day before the upgrade. |
Any updates for this issue ? |
For me helped switching back to basic store (previous version used it): |
You can be sure that when there is progress, it will be posted. The PR that re-enables (the use of) gnome-libsecret (on GNOME) is here: #756 |
The PR tries to fix an issue with libsecret. It does not "enable" gnome-libsecret. |
I am seeing the same database error on my desktop comp however, signal desktop on my latptop still works. Can I, backup the chat history on my laptop to restore chat history on my desktop whenever signal desktop works again? I am using Zorin OS Pro (Ubuntu fork) on both comps. |
Having the same issue, cannot use Signal on Desktop anymore since weeks. I don't want to delete the database, because some messages are only stored on my computer, not on my phone. |
I have no idea, but I would definitely make a backup copy of the whole ~/.var/app/org.signal.Signal/ tree just in case, before doing anything else. Maybe there is hope after all. |
With secret-tool we can identify the password but it's encoded see #753) . |
No clue :( it might be genuinely impossible to recover. I'm just waiting until the day Signal will magically start working again until there is a new update is released to the Flatpak and just use my phone in the meantime, but it is possible that it was broken enough that the encryption key was never stored anywhere (which is what seems to be implied) so in the absence of a backup, it might be impossible to recover. I am also waiting to see if I have the time and energy to find a backup, but I haven't found any backup. I think this is a sign for everyone to backup your home folder using filesystem snapshots or something like https://apps.gnome.org/PikaBackup/ |
That's great news! I do see the key in there, so it has not been lost to the void; thank you for recommending Key Rack! |
Some more complete instructions that should recover the message history:
For me this does not work, but I don't see why it wouldn't, so testing help is very appreciated! |
I didn't work for me. Maybe because I had 2 signal versions installed : I backuped my $HOME/.var/app/org.signal.Signal prior to the process you describe so I can try another process/give it another try. |
Thanks for testing. The two versions are expected. So far this hasn't worked for anybody, so my assumption about the key written by the broken update must be wrong. The next step would be to recreate a fresh install, note the plaintext key, move to the bad update, note what gets written to the file based flatpak key, and compare with what gets written by the build in this PR. |
Hello, @minosimo |
i'm using it, and it works fine, the default of plaintext keys is documented as the default. but of course, you should take a backup and ensure you know how your existing signal is configured, with respect to the database encryption key. |
Quite new to this (my Signal broke in 7.24 and haven't been able to recover it yet). Before I do any updates and give the additional permissions, can someone point me to or explain why this new permissions are required and how are they different from what signal had before, and if it's a 'good idea' to give these extra permissions? Thanks (basically worried about giving further access to my root system) Also, I don't understand what the explanation means on the popup window after the update is installed (but before conceding to the additional permissions, see image). I don't know what permissions to give using Flatseal, and so I'm going in blind if I just say 'yes' at this step. |
The new permissions are unrelated to the database issue. The links in your screenshot do a good job of explaining why the change was implemented. |
Problem persist on 7.30 |
|
Just running into this on 7.31.0 |
Without fail, after having Signal installed for a few days, this error ends up appearing after trying to open it.
The text was updated successfully, but these errors were encountered: