Skip to content

Conversation

@ibetitsmike
Copy link
Contributor

When the splash screen closes via close(), Electron's internal sandboxed renderer scripts may still be executing. These scripts try to access webContents properties after destruction, causing:

Error invoking remote method 'BROWSER_GET_LAST_WEB_PREFERENCES': WebContents does not exist
Electron sandboxed_renderer.bundle.js script failed to run
TypeError: object null is not iterable

Fix: Use destroy() instead of close() for immediate window destruction without waiting for internal scripts. This is appropriate since the splash has no state to preserve.

Also adds isDestroyed() guard in notify.ts for notification click handlers.


Generated with mux • Model: mux-gateway:anthropic/claude-opus-4-5 • Thinking: high • Cost: $2.42

When the splash screen closes via close(), Electron's internal sandboxed
renderer scripts may still be executing. These scripts can try to access
webContents properties after destruction, causing:
- BROWSER_GET_LAST_WEB_PREFERENCES: WebContents does not exist
- sandboxed_renderer.bundle.js script failed to run
- TypeError: object null is not iterable

Using destroy() immediately destroys the window without waiting for
internal scripts to complete. This is appropriate for the splash since
it has no state to preserve and no close handlers that need to run.

Also adds isDestroyed() guard in notify.ts for notification click
handlers that could fire after window destruction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant