Skip to content

macOS 15.6.1: Spool 0.3.7 crashes immediately on launch (EXC_BREAKPOINT / SIGTRAP in CrBrowserMain) #108

@sinoon

Description

@sinoon

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

  1. Install Spool 0.3.7 to /Applications/Spool.app
  2. Launch it from Finder, Spotlight, or directly from the executable
  3. 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:

ok
ok

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions