Description of bug
MeshMonitor-Desktop-4.2.0-x64.dmg (and other older builds) bundles better_sqlite3.node as arm64, but the x64 app needs x86_64.
To Reproduce
Steps to reproduce the behavior:
- Preform a clean install via the dmg file.
- Run the application.
- Enter an IP and click "Start MeshMonitor".
- Application hangs showing "Starting...".
- Open the logs folder and view server-stderr.log.
Output of server-stderr.log
[ERROR] ❌ DATABASE OPEN ERROR ❌
[ERROR] ═══════════════════════════════════════════════════════════
[ERROR] Failed to open SQLite database at: /Users/ltitus/Library/Application Support/MeshMonitor/meshmonitor.db
[ERROR]
[ERROR] Error: dlopen(/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node, 0x0001): tried: '/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h' or 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (no such file), '/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h' or 'x86_64'))
[ERROR] Error code: ERR_DLOPEN_FAILED
node:internal/modules/cjs/loader:1920
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: dlopen(/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node, 0x0001): tried: '/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h' or 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (no such file), '/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h' or 'x86_64'))
at Object..node (node:internal/modules/cjs/loader:1920:18)
at Module.load (node:internal/modules/cjs/loader:1481:32)
at Module._load (node:internal/modules/cjs/loader:1300:12)
at TracingChannel.traceSync (node:diagnostics_channel:328:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:245:24)
at Module.require (node:internal/modules/cjs/loader:1504:12)
at require (node:internal/modules/helpers:152:16)
at bindings (/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/bindings/bindings.js:112:48)
at new Database (/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/lib/database.js:48:64)
at attemptOpen (file:///Applications/MeshMonitor.app/Contents/Resources/dist/services/database.js:2903:24) {
code: 'ERR_DLOPEN_FAILED'
}
Node.js v24.12.0
Verification of my computer architecture vs better_sqlite3.node architecture
My CPU's architecture:
ltitus@Larrys-iHack-Pro-15 bind % uname -a
Darwin Larrys-iHack-Pro-15.local 24.6.0 Darwin Kernel Version 24.6.0: Fri Feb 27 19:33:24 PST 2026; root:xnu-11417.140.69.709.8~1/RELEASE_X86_64 x86_64
Architecture of main app binary:
ltitus@Larrys-iHack-Pro-15 bind % file "/Applications/MeshMonitor.app/Contents/MacOS/meshmonitor-desktop"
/Applications/MeshMonitor.app/Contents/MacOS/meshmonitor-desktop: Mach-O 64-bit executable x86_64
Architecture of bundled better_sqlite3.node:
ltitus@Larrys-iHack-Pro-15 bind % file "/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node"
/Applications/MeshMonitor.app/Contents/Resources/dist/node_modules/better-sqlite3/build/Release/better_sqlite3.node: Mach-O 64-bit bundle arm64
Expected behavior
Bundled better_sqlite3.node in MeshMonitor-Desktop-4.2.0-x64.dmg should be built for x86_64.
Environment:
- Host OS: macOS 15.7.5
- CPU: Intel 3.42 GHz Intel(R) Core(TM) i7-13700K
- Deployment type: Mac App
- Database backend: SQLite
- Node type: Heltec V4
- Node Connection Type: Wifi
Description of bug
MeshMonitor-Desktop-4.2.0-x64.dmg (and other older builds) bundles better_sqlite3.node as arm64, but the x64 app needs x86_64.
To Reproduce
Steps to reproduce the behavior:
Output of server-stderr.log
Verification of my computer architecture vs better_sqlite3.node architecture
My CPU's architecture:
Architecture of main app binary:
Architecture of bundled better_sqlite3.node:
Expected behavior
Bundled better_sqlite3.node in MeshMonitor-Desktop-4.2.0-x64.dmg should be built for x86_64.
Environment: