flathub / org.signal.Signal

https://flathub.org/apps/details/org.signal.Signal
61 stars 37 forks source link

Signal is broken with Uncaught Exception: libsignal-client.node not found #751

Open fredmorcos opened 1 day ago

fredmorcos commented 1 day ago

I suffered from the broken database issue. So I had to uninstall signal with flatpak --user uninstall org.signal.Signal --delete-data, then I reinstalled it. I followed the instruction of removing org.freedesktop.secrets access in Flatseal.

Now when I run Signal with flatpak --user run org.signal.Signal --password-store=basic I get this message box:

image

When I click "Yes" I get the following message on the terminal:

~ >  flatpak --user run org.signal.Signal --password-store=basic
Debug: Using password store: basic
# <--------- message box shows up here
Debug: Will run signal with the following arguments: --password-store=basic
Debug: Additionally, user gave: --password-store=basic
A JavaScript error occurred in the main process
Uncaught Exception:
Error: ENOENT, node_modules/@signalapp/libsignal-client/prebuilds/linux-x64/@signalapp+libsignal-client.node not found in /app/Signal/resources/app.asar
    at createError (node:electron/js2c/node_init:2:2002)
    at Object.func [as .node] (node:electron/js2c/node_init:2:2721)
    at Module.load (node:internal/modules/cjs/loader:1215:32)
    at Module._load (node:internal/modules/cjs/loader:1031:12)
    at c._load (node:electron/js2c/node_init:2:17025)
    at Module.require (node:internal/modules/cjs/loader:1240:19)
    at require (node:internal/modules/helpers:179:18)
    at load (/app/Signal/resources/app.asar/node_modules/node-gyp-build/node-gyp-build.js:22:10)
    at Object.<anonymous> (/app/Signal/resources/app.asar/node_modules/@signalapp/libsignal-client/Native.js:6:43)
    at Module._compile (node:internal/modules/cjs/loader:1373:14)

EDIT: The file it's complaining about seems to exist:

~ >  ll .local/share/flatpak/app/org.signal.Signal/x86_64/stable/2d3107e48d9f49cbcc0c1667448b7c3429dab28176daf066b2eb33f79e121c45/files/Signal/resources/app.asar.unpacked/node_modules/@signalapp/libsignal-client/prebuilds/linux-x64/@signalapp+libsignal-client.node
.rw-r--r-- 14M fred fred  1 Jan  1970 .local/share/flatpak/app/org.signal.Signal/x86_64/stable/2d3107e48d9f49cbcc0c1667448b7c3429dab28176daf066b2eb33f79e121c45/files/Signal/resources/app.asar.unpacked/node_modules/@signalapp/libsignal-client/prebuilds/linux-x64/@signalapp+libsignal-client.node
bermeitinger-b commented 1 day ago

Don't set your own password-store. basic is the default.

We should treat double command line switches in the future.

fredmorcos commented 1 day ago

Alright, but that doesn't fix the issue.

bermeitinger-b commented 1 day ago

Is it the same error message?

fredmorcos commented 1 day ago

Yes

gx42 commented 1 day ago

I get the same error. I updated Signal this morning, and received a prompt about database corruption. Now Signal Desktop throws an exception and doesn't start.

[user@signal Signal]$ flatpak run org.signal.Signal
Debug: Using password store: basic
Debug: Will run signal with the following arguments: --password-store=basic
Debug: Additionally, user gave: 
A JavaScript error occurred in the main process
Uncaught Exception:
Error: ENOENT, node_modules/@signalapp/libsignal-client/prebuilds/linux-x64/@signalapp+libsignal-client.node not found in /app/Signal/resources/app.asar
    at createError (node:electron/js2c/node_init:2:2002)
    at Object.func [as .node] (node:electron/js2c/node_init:2:2721)
    at Module.load (node:internal/modules/cjs/loader:1215:32)
    at Module._load (node:internal/modules/cjs/loader:1031:12)
    at c._load (node:electron/js2c/node_init:2:17025)
    at Module.require (node:internal/modules/cjs/loader:1240:19)
    at require (node:internal/modules/helpers:179:18)
    at load (/app/Signal/resources/app.asar/node_modules/node-gyp-build/node-gyp-build.js:22:10)
    at Object.<anonymous> (/app/Signal/resources/app.asar/node_modules/@signalapp/libsignal-client/Native.js:6:43)
    at Module._compile (node:internal/modules/cjs/loader:1373:14)
[2:0928/113847.712677:ERROR:browser_main_loop.cc(283)] Gdk: gdk_atom_intern: assertion 'atom_name != NULL' failed
[2:0928/113847.713126:ERROR:browser_main_loop.cc(283)] Gdk: gdk_atom_intern: assertion 'atom_name != NULL' failed
Gtk-Message: 11:38:47.742: Failed to load module "canberra-gtk-module"
Gtk-Message: 11:38:47.742: Failed to load module "pk-gtk-module"
Gtk-Message: 11:38:47.743: Failed to load module "canberra-gtk-module"
Gtk-Message: 11:38:47.743: Failed to load module "pk-gtk-module"
[39:0928/113847.842702:ERROR:viz_main_impl.cc(166)] Exiting GPU process due to errors during initialization

After accepting the prompt and deleting the database, the exception is still being thrown:

Debug: Using password store: basic
Debug: Will run signal with the following arguments: --password-store=basic
Debug: Additionally, user gave: 
Set Windows Application User Model ID (AUMID) { AUMID: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /app/Signal/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME signal
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
SIGNAL_ENABLE_HTTP undefined
userData: /home/user/.var/app/org.signal.Signal/config/Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
making app single instance
LaunchProcess: failed to execvp:
xdg-settings
LaunchProcess: failed to execvp:
xdg-settings
[2:0928/114805.996016:ERROR:browser_main_loop.cc(283)] Gdk: gdk_atom_intern: assertion 'atom_name != NULL' failed
Gtk-Message: 11:48:06.112: Failed to load module "canberra-gtk-module"
Gtk-Message: 11:48:06.112: Failed to load module "pk-gtk-module"
Gtk-Message: 11:48:06.119: Failed to load module "canberra-gtk-module"
Gtk-Message: 11:48:06.119: Failed to load module "pk-gtk-module"
{"level":30,"time":"2024-09-28T01:48:06.712Z","msg":"got fast localeOverride setting null"}
{"level":30,"time":"2024-09-28T01:48:06.713Z","msg":"app.ready: hour cycle preference: UnknownPreference"}
{"level":30,"time":"2024-09-28T01:48:06.714Z","msg":"app.ready: preferred system locales: en"}
{"level":30,"time":"2024-09-28T01:48:06.718Z","msg":"locale: Supported locales: af-ZA, ar, az-AZ, bg-BG, bn-BD, bs-BA, ca, cs, da, de, el, en, es, et-EE, eu, fa-IR, fi, fr, ga-IE, gl-ES, gu-IN, he, hi-IN, hr-HR, hu, id, it, ja, ka-GE, kk-KZ, km-KH, kn-IN, ko, ky-KG, lt-LT, lv-LV, mk-MK, ml-IN, mr-IN, ms, my, nb, nl, pa-IN, pl, pt-BR, pt-PT, ro-RO, ru, sk-SK, sl-SI, sq-AL, sr, sv, sw, ta-IN, te-IN, th, tl-PH, tr, ug, uk-UA, ur, vi, yue, zh-CN, zh-HK, zh-Hant"}
{"level":30,"time":"2024-09-28T01:48:06.719Z","msg":"locale: Preferred locales: en"}
{"level":30,"time":"2024-09-28T01:48:06.719Z","msg":"locale: Locale Override: null"}
{"level":30,"time":"2024-09-28T01:48:06.722Z","msg":"locale: Matched locale: en"}
{"level":40,"time":"2024-09-28T01:48:06.817Z","msg":"intl.onWarn [@formatjs/intl] \"defaultRichTextElements\" was specified but \"message\" was not pre-compiled. \nPlease consider using \"@formatjs/cli\" to pre-compile your messages for performance.\nFor more details see https://formatjs.io/docs/getting-started/message-distribution"}
{"level":30,"time":"2024-09-28T01:48:06.822Z","msg":"locale: Text info direction for en: ltr"}
{"level":30,"time":"2024-09-28T01:48:06.823Z","msg":"getSQLKey: using legacy key"}
{"level":30,"time":"2024-09-28T01:48:06.824Z","msg":"getSystemTraySetting got value DoNotUseSystemTray"}
{"level":30,"time":"2024-09-28T01:48:06.824Z","msg":"getSystemTraySetting returning DoNotUseSystemTray"}
{"level":30,"time":"2024-09-28T01:48:06.825Z","msg":"app ready"}
{"level":30,"time":"2024-09-28T01:48:06.825Z","msg":"starting version 7.24.1"}
{"level":30,"time":"2024-09-28T01:48:06.825Z","msg":"media access status [object Undefined] [object Undefined]"}
{"level":30,"time":"2024-09-28T01:48:06.836Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2024-09-28T01:48:06.865Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2024-09-28T01:48:06.865Z","msg":"got fast spellcheck setting true"}
{"level":30,"time":"2024-09-28T01:48:06.866Z","msg":"Initializing BrowserWindow config: {\"show\":false,\"width\":1920,\"height\":1025,\"minWidth\":300,\"minHeight\":200,\"autoHideMenuBar\":false,\"titleBarStyle\":\"default\",\"backgroundColor\":\"#121212\",\"webPreferences\":{\"devTools\":false,\"spellcheck\":true,\"enableBlinkFeatures\":\"CSSPseudoDir,CSSLogical\",\"enablePreferredSizeMode\":true,\"nodeIntegration\":false,\"nodeIntegrationInWorker\":false,\"sandbox\":false,\"contextIsolation\":true,\"preload\":\"[REDACTED]/preload.bundle.js\",\"backgroundThrottling\":true,\"disableBlinkFeatures\":\"Accelerated2dCanvas,AcceleratedSmallCanvases\"},\"icon\":\"[REDACTED]/images/signal-logo-desktop-linux.png\",\"x\":0,\"y\":55}"}
{"level":30,"time":"2024-09-28T01:48:07.015Z","msg":"spellcheck: user locales: [\"en\"]"}
{"level":30,"time":"2024-09-28T01:48:07.015Z","msg":"spellcheck: available spellchecker languages: [\"af\",\"bg\",\"ca\",\"cs\",\"cy\",\"da\",\"de\",\"de-DE\",\"el\",\"en\",\"en-AU\",\"en-CA\",\"en-GB\",\"en-GB-oxendict\",\"en-US\",\"es\",\"es-419\",\"es-AR\",\"es-ES\",\"es-MX\",\"es-US\",\"et\",\"fa\",\"fo\",\"fr\",\"fr-FR\",\"he\",\"hi\",\"hr\",\"hu\",\"hy\",\"id\",\"it\",\"it-IT\",\"ko\",\"lt\",\"lv\",\"nb\",\"nl\",\"pl\",\"pt\",\"pt-BR\",\"pt-PT\",\"ro\",\"ru\",\"sh\",\"sk\",\"sl\",\"sq\",\"sr\",\"sv\",\"ta\",\"tg\",\"tr\",\"uk\",\"vi\"]"}
{"level":30,"time":"2024-09-28T01:48:07.015Z","msg":"spellcheck: setting languages to: [\"en\"]"}
{"level":30,"time":"2024-09-28T01:48:07.393Z","msg":"MainSQL: migrateDatabase: Migration without cipher change failed"}
{"level":50,"time":"2024-09-28T01:48:07.415Z","msg":"MainSQL: Database startup error: Error: ENOENT, node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node not found in [REDACTED]\n    at createError (node:electron/js2c/node_init:2:2002)\n    at Object.func [as .node] (node:electron/js2c/node_init:2:2721)\n    at Module.load (node:internal/modules/cjs/loader:1215:32)\n    at Module._load (node:internal/modules/cjs/loader:1031:12)\n    at c._load (node:electron/js2c/node_init:2:17025)\n    at Module.require (node:internal/modules/cjs/loader:1240:19)\n    at require (node:internal/modules/helpers:179:18)\n    at bindings ([REDACTED]/node_modules/bindings/bindings.js:112:48)\n    at new Database ([REDACTED]/node_modules/@signalapp/better-sqlite3/lib/database.js:48:64)\n    at openAndMigrateDatabase ([REDACTED]/ts/sql/Server.js:432:8)"}
{"level":50,"time":"2024-09-28T01:48:07.416Z","msg":"Failed to get zoom factor {\"name\":\"Error\"}"}
{"level":30,"time":"2024-09-28T01:48:07.922Z","msg":"got fast theme-setting value dark"}
{"level":50,"time":"2024-09-28T01:48:08.080Z","msg":"Preload error in [REDACTED]/preload.bundle.js:  ENOENT, node_modules/@signalapp/libsignal-client/prebuilds/linux-x64/@signalapp+libsignal-client.node not found in [REDACTED]"}
{"level":50,"time":"2024-09-28T01:48:08.150Z","msg":"sql.initialize was unsuccessful; returning early"}
{"level":30,"time":"2024-09-28T01:48:08.150Z","msg":"close event {\"readyForShutdown\":false,\"shouldQuit\":false}"}
{"level":30,"time":"2024-09-28T01:48:08.151Z","msg":"maybeRequestCloseConfirmation: Checking to see if close confirmation is needed"}

(signal-desktop:2): Gdk-WARNING **: 11:48:10.065: ../gdk/x11/gdkproperty-x11.c:224 invalid X atom: 3002241878
{"level":50,"time":"2024-09-28T01:48:23.841Z","msg":"onDatabaseError: Deleting all data"}
{"level":50,"time":"2024-09-28T01:48:23.854Z","msg":"maybeRequestCloseConfirmation: Response never received; continuing with close."}
{"level":50,"time":"2024-09-28T01:48:23.856Z","msg":"MainSQL close, failed: Error: ENOENT, node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node not found in [REDACTED]\n    at createError (node:electron/js2c/node_init:2:2002)\n    at Object.func [as .node] (node:electron/js2c/node_init:2:2721)\n    at Module.load (node:internal/modules/cjs/loader:1215:32)\n    at Module._load (node:internal/modules/cjs/loader:1031:12)\n    at c._load (node:electron/js2c/node_init:2:17025)\n    at Module.require (node:internal/modules/cjs/loader:1240:19)\n    at require (node:internal/modules/helpers:179:18)\n    at bindings ([REDACTED]/node_modules/bindings/bindings.js:112:48)\n    at new Database ([REDACTED]/node_modules/@signalapp/better-sqlite3/lib/database.js:48:64)\n    at openAndMigrateDatabase ([REDACTED]/ts/sql/Server.js:432:8)"}
{"level":30,"time":"2024-09-28T01:48:23.857Z","msg":"before-quit event {\"readyForShutdown\":true,\"shouldQuit\":false,\"hasEventBeenPrevented\":false,\"windowCount\":1,\"mainWindowExists\":false}"}
{"level":30,"time":"2024-09-28T01:48:23.857Z","msg":"close event: no main window"}
{"level":30,"time":"2024-09-28T01:48:23.859Z","msg":"main window is ready-to-show"}
{"level":30,"time":"2024-09-28T01:48:23.868Z","msg":"main window closed event"}
{"level":30,"time":"2024-09-28T01:48:23.870Z","msg":"will-quit event {\"hasEventBeenPrevented\":false,\"windowCount\":0,\"mainWindowExists\":false}"}
{"level":30,"time":"2024-09-28T01:48:23.870Z","msg":"quit event {\"hasEventBeenPrevented\":false,\"windowCount\":0,\"mainWindowExists\":false}"}
{"level":40,"time":"2024-09-28T01:48:23.873Z","msg":"MainSQL: removeDB: Removing all database files"}
{"level":30,"time":"2024-09-28T01:48:23.874Z","msg":"config/remove: Deleting user config from disk"}
{"level":30,"time":"2024-09-28T01:48:23.874Z","msg":"config/remove: Deleted user config from disk"}
{"level":50,"time":"2024-09-28T01:48:23.874Z","msg":"onDatabaseError: Requesting immediate restart after quit"}
{"level":50,"time":"2024-09-28T01:48:23.937Z","msg":"onDatabaseError: Quitting application"}

Version details:

[user@signal Signal]$ flatpak info org.signal.Signal

Signal Foundation - Private messenger

          ID: org.signal.Signal
         Ref: app/org.signal.Signal/x86_64/stable
        Arch: x86_64
      Branch: stable
     Version: 7.24.1
     License: AGPL-3.0-only
      Origin: flathub
  Collection: org.flathub.Stable
Installation: user
   Installed: 479.4 MB
     Runtime: org.freedesktop.Platform/x86_64/24.08
         Sdk: org.freedesktop.Sdk/x86_64/24.08

      Commit: 2d3107e48d9f49cbcc0c1667448b7c3429dab28176daf066b2eb33f79e121c45
      Parent: a86572347a1f1567a4415637c6488a1951dc48304366146de9eecce3bc201d8d
     Subject: Do update check of master and beta separately (#749) (69440046)
        Date: 2024-09-27 13:54:24 +0000