contextBridge.exposeInMainWorld does not copy Error details · Issue #25596 · electron/electron · GitHub
https://github.com/electron/electron/issues/25596 • 296 KB fetched Open original page
contextBridge.exposeInMainWorld does not copy Error details · Issue #25596 · electron/electron · GitHub
Skip to content
Navigation Menu
Sign in Appearance settings
* Platform
* AI CODE CREATION
* GitHub Copilot Write better code with AI
* GitHub Copilot app Direct agents from issue to merge
* MCP Registry Integrate external tools
* DEVELOPER WORKFLOWS
* Actions Automate any workflow
* Codespaces Instant dev environments
* Issues Plan and track work
* Code Review Manage code changes
* Code Quality Enforce quality at merge
* APPLICATION SECURITY
* GitHub Advanced Security Find and fix vulnerabilities
* Code security Secure your code as you build
* Secret protection Stop leaks before they start
* EXPLORE
* Why GitHub
* Documentation
* Blog
* Changelog
* Marketplace
View all features
* Solutions
* BY COMPANY SIZE
* Enterprises
* Small and medium teams
* Startups
* Nonprofits
* BY USE CASE
* App Modernization
* DevSecOps
* DevOps
* CI/CD
* View all use cases
* BY INDUSTRY
* Healthcare
* Financial services
* Manufacturing
* Government
* View all industries
View all solutions
* Resources
* EXPLORE BY TOPIC
* AI
* Software Development
* DevOps
* Security
* View all topics
* EXPLORE BY TYPE
* Customer stories
* Events & webinars
* Ebooks & reports
* Business insights
* GitHub Skills
* SUPPORT & SERVICES
* Documentation
* Customer support
* Community forum
* Trust center
* Partners
View all resources
* Open Source
* COMMUNITY
* GitHub Sponsors Fund open source developers
* PROGRAMS
* Security Lab
* Maintainer Community
* GitHub Stars
* Archive Program
* REPOSITORIES
* Topics
* Trending
* Collections
* Enterprise
* ENTERPRISE SOLUTIONS
* Enterprise platform AI-powered developer platform
* AVAILABLE ADD-ONS
* GitHub Advanced Security Enterprise-grade security features
* Copilot for Business Enterprise-grade AI features
* Premium Support Enterprise-grade 24/7 support
* Pricing
Search /
Sign in
Sign up Appearance settings
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
Uh oh!
There was an error while loading. Please reload this page .
electron
/
electron
Public
*
Notifications
You must be signed in to change notification settings
*
Fork
17.5k
*
Star
123k
*
Code
*
Issues
626
*
Pull requests
132
*
Actions
*
Projects
*
Security and quality
61
*
Insights
Additional navigation options
*
Code
*
Issues
*
Pull requests
*
Actions
*
Projects
*
Security and quality
*
Insights
contextBridge.exposeInMainWorld does not copy Error details #25596
New issue
Copy link
New issue
Copy link
Closed as not planned
Closed as not planned
contextBridge.exposeInMainWorld does not copy Error details #25596
Copy link
Labels
10-x-y bug 🪲 platform/windows stale
Description
rfricz
opened on Sep 23, 2020
Issue body actions
Preflight Checklist
* I have read the Contributing Guidelines for this project.
* I agree to follow the Code of Conduct that this project adheres to.
* I have searched the issue tracker for an issue that matches the one I want to file, without success.
Issue Details
When calling functions exposed by contextBridge.exposeInMainWorld , Promises rejected with Error objects or directly thrown Errors (and even caught Errors returned in a wrapper) are not copied as the documentation states – all important information except the message is removed, e.g. Common System Error properties like err.code , err.path etc. are gone. Also, the “Uncaught Error: ” message prefix is not very helpful.
* Electron Version:
* 10.1.2
* Operating System:
* Windows 10 (2004)
Expected Behavior
Instances of the Error class (or inherited from it) coming from the context bridge should have all properties preserved (except err.stack , obviously) and message left intact to allow meaningful error handling. Structured Clone Algorithm otherwise serializes Error objects correctly.
Actual Behavior
The Error object is stripped of important additional properties and has a confusing message saying it’s uncaught even when caught on both sides of the bridge.
To Reproduce
preload.js
const { contextBridge } = require ( 'electron' ) ;
const fs = require ( 'fs' ) ;
contextBridge . exposeInMainWorld ( 'myapi' , {
request : ( ) => fs . lstatSync ( 'foo' )
} ) ;
renderer
try {
window . myapi . request ( ) ;
} catch ( e ) {
console . dir ( e ) ;
}
Reactions are currently unavailable
Activity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Metadata
Assignees
No one assigned
Labels
10-x-y bug 🪲 platform/windows stale
Type
No type
Projects
No projects
Milestone
No milestone
Relationships
None yet
Development
No branches or pull requests
Issue actions
* Open in GitHub Copilot app
Footer
(c) 2026 GitHub, Inc.
Footer navigation
*
Terms
*
Privacy
*
Security
*
Status
*
Community
*
Docs
*
Contact
*
Manage cookies
*
Do not share my personal information
You can’t perform that action at this time.