Comments (3)
Thanks for the report, @Grmiade. After some testing, this issue seems to be unrelated to the HTTP method but rather to the active domain changing, as is the case if the error is triggered by an unhandled promise rejection or other event emitter. (I have an example of promise rejection specifically here)
In Node v8.0.0, promises run in the domain which call them, though the implementation does not provide a way to capture that domain externally without wrapping the promise, and even then, domain.active
is unset. The correct solution would be to remove the reliance on domains, though this probably will need to wait for the stabilization of async hooks or similar to handle asynchronous resource-specific data.
Looking into this further.
from bugsnag-node.
Would it be an idea to have some sort of fallback where you can set the requestData on the request object itself?
from bugsnag-node.
Hey @Grmiade have you had a chance to try Node v8 yet? As @kattrali mentioned, the native promises there should behave in a slightly better way (if indeed you were using promises).
Unfortunately there's not a lot we can do here⦠domains are fundamentally flawed (which is why they have been deprecated) in ways such as this, but there isn't a direct replacement yet for the features that they provide. We continue to watch this space and will be doing some of our own investigation with async hooks. For the near future at least we just have to stick with the current implementation, which is better than not using domains at all!
In response to your suggestion @Fjandin⦠yes it is possible to set request data on the req
object, however the difficulty is that in an error triggered by that req/res handler (in a future tick on the event loop) there is no reference back to req
β which is why the information is attached to the current domain
, which is available (except when it isn't π ).
I could have misunderstood your suggestion however! If you do see a way of doing this, if you could sketch it out in a gist or something, that'd be great!
Closing this off as unfortunately I don't see anything we can do at present.
from bugsnag-node.
Related Issues (20)
- Can't disable logs HOT 3
- Duplicate Error Messages in Logs HOT 1
- Cannot find module backo HOT 2
- Missing functionality or documentation for app type feature HOT 1
- No way to filter authorization header HOT 1
- Middleware crashes with serverless-http HOT 2
- Interface ConfigurationOptions is missing newer Bugsnag options HOT 4
- Source map support HOT 2
- Bugsnag: Error: uv_signal_start EINVAL HOT 9
- not able to minify using create-react-app webpack configuration HOT 7
- Express middleware not sending request details HOT 6
- bugsnag-node depends on "unlicensed" code HOT 2
- Please upgrade `request` dependency to ^2.87.0 HOT 2
- Dependency Bloat HOT 2
- Cannot read property 'startSession' of undefined on test environment HOT 2
- Sessions tracking against `production`, not configured releaseStage HOT 3
- Delivering exception to http://undefined:80undefined HOT 3
- How to add bugsnag middleware to apollo-server-lambda HOT 1
- Sending Strings to bugsnag.notify('String') are ignored HOT 2
- Bugsnag: Encountered an uncaught error, terminating. All uncaught errors force process.exit(), bad. HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bugsnag-node.