What happened?
Spool 0.3.7 crashes immediately on launch on macOS 15.6.1 on Apple Silicon.
I can reproduce it every time, including with:
- a fresh Electron user-data directory via
SPOOL_ELECTRON_USER_DATA_DIR
- a fresh Spool data directory via
SPOOL_DATA_DIR
That makes it look unlikely to be caused by existing local state under ~/.spool.
The crash reports are consistent across launches:
- exception:
EXC_BREAKPOINT / SIGTRAP
- faulting thread:
CrBrowserMain
- stack contains
node::PromiseRejectCallback(v8::PromiseRejectMessage)
- bundled Electron Framework version:
34.5.8
So this looks more like a startup-time Electron main-process failure, potentially an unhandled promise rejection, than a corrupted local database/profile.
Expected behavior
The app should stay open and show the main window instead of exiting immediately.
Steps to reproduce
- Install Spool
0.3.7 to /Applications/Spool.app
- Launch it from Finder, Spotlight, or directly from the executable
- Observe that it exits almost immediately
It still reproduces after isolating both Electron profile and Spool data:
export SPOOL_ELECTRON_USER_DATA_DIR="$(mktemp -d /tmp/spool-userdata.XXXXXX)"
export SPOOL_DATA_DIR="$(mktemp -d /tmp/spool-data.XXXXXX)"
/Applications/Spool.app/Contents/MacOS/Spool
On my machine, the command above created a new crash report:
/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-24-160017.ips
Spool version
0.3.7
macOS version
macOS 15.6.1 (24G90) on Apple Silicon (arm64, model Mac15,7)
Additional diagnostics
Crash report summary
Recent crash reports all show the same signature, for example:
/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-23-204803.ips
/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-24-155457.ips
/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-24-160017.ips
Excerpt from Spool-2026-04-24-160017.ips:
app_version: 0.3.7
os_version: macOS 15.6.1 (24G90)
exception: EXC_BREAKPOINT / SIGTRAP
faultingThread: 23
thread name: CrBrowserMain
node::PromiseRejectCallback(v8::PromiseRejectMessage)
Electron Framework 34.5.8
Local state checks
sqlite3 ~/.spool/spool.db 'PRAGMA integrity_check; PRAGMA quick_check;' returns:
I also checked ~/.spool/connectors, and there were no installed connectors there at the time of testing.
Reproduced with clean directories
I re-ran the app with fresh temporary directories for both Electron user data and Spool data:
BEFORE_COUNT=12
AFTER_COUNT=13
SPOOL_ELECTRON_USER_DATA_DIR=/tmp/spool-userdata.Sa1qFh
SPOOL_DATA_DIR=/tmp/spool-data.G3DBJq
LATEST_CRASH=/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-24-160017.ips
That produced a brand new crash report, so this does not appear to depend on any pre-existing local state.
Packaging / signing observations
spctl -a -vv /Applications/Spool.app returns:
/Applications/Spool.app: rejected
origin=Apple Development: huisheng.chen@connect.polyu.hk (693T45323S)
codesign -d --entitlements :- /Applications/Spool.app shows only:
com.apple.security.cs.allow-jit
com.apple.security.cs.allow-unsigned-executable-memory
com.apple.security.cs.disable-library-validation
The app bundle does not include com.apple.security.automation.apple-events.
Possibly relevant packaged-source observations
While inspecting the packaged app locally:
src/main/terminal.ts contains AppleScript-based terminal detection / automation (osascript, Terminal/iTerm integration)
src/main/index.ts initializes DB, ACP manager, syncer, watcher, and connector loading very early in startup
createWindow() calls win.loadURL(...) / win.loadFile(...) without wrapping those calls in a visible await/catch path in the packaged source I inspected
I could not recover the exact rejected promise message, but the crash stack strongly suggests startup is hitting a rejected promise on the Electron main process.
Notes
This looks different from #27:
If useful, I can provide the full .ips crash report contents as a follow-up.
What happened?
Spool
0.3.7crashes immediately on launch on macOS15.6.1on Apple Silicon.I can reproduce it every time, including with:
SPOOL_ELECTRON_USER_DATA_DIRSPOOL_DATA_DIRThat makes it look unlikely to be caused by existing local state under
~/.spool.The crash reports are consistent across launches:
EXC_BREAKPOINT / SIGTRAPCrBrowserMainnode::PromiseRejectCallback(v8::PromiseRejectMessage)34.5.8So this looks more like a startup-time Electron main-process failure, potentially an unhandled promise rejection, than a corrupted local database/profile.
Expected behavior
The app should stay open and show the main window instead of exiting immediately.
Steps to reproduce
0.3.7to/Applications/Spool.appIt still reproduces after isolating both Electron profile and Spool data:
On my machine, the command above created a new crash report:
/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-24-160017.ipsSpool version
0.3.7macOS version
macOS 15.6.1 (24G90)on Apple Silicon (arm64, modelMac15,7)Additional diagnostics
Crash report summary
Recent crash reports all show the same signature, for example:
/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-23-204803.ips/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-24-155457.ips/Users/bytedance/Library/Logs/DiagnosticReports/Spool-2026-04-24-160017.ipsExcerpt from
Spool-2026-04-24-160017.ips:Local state checks
sqlite3 ~/.spool/spool.db 'PRAGMA integrity_check; PRAGMA quick_check;'returns:I also checked
~/.spool/connectors, and there were no installed connectors there at the time of testing.Reproduced with clean directories
I re-ran the app with fresh temporary directories for both Electron user data and Spool data:
That produced a brand new crash report, so this does not appear to depend on any pre-existing local state.
Packaging / signing observations
spctl -a -vv /Applications/Spool.appreturns:codesign -d --entitlements :- /Applications/Spool.appshows only:The app bundle does not include
com.apple.security.automation.apple-events.Possibly relevant packaged-source observations
While inspecting the packaged app locally:
src/main/terminal.tscontains AppleScript-based terminal detection / automation (osascript, Terminal/iTerm integration)src/main/index.tsinitializes DB, ACP manager, syncer, watcher, and connector loading very early in startupcreateWindow()callswin.loadURL(...)/win.loadFile(...)without wrapping those calls in a visibleawait/catchpath in the packaged source I inspectedI could not recover the exact rejected promise message, but the crash stack strongly suggests startup is hitting a rejected promise on the Electron main process.
Notes
This looks different from #27:
0.2.10.3.7crashing immediately withEXC_BREAKPOINT / SIGTRAPandnode::PromiseRejectCallbackinCrBrowserMainIf useful, I can provide the full
.ipscrash report contents as a follow-up.