-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Description
Problem Statement
The king is dead, long live the king...
We removed lastEventId in #10585 due to several shortcomings of this API:
- It would return potentially unexpected event ids, for example when multiple errors were caught in sequence
- The last eventId was updated directly in
captureEvent, before processing and sending the event. Meaning, if users or our event processors dropped the event,lastEventIdwould return an id of an event that wasn't ever sent from the SDK. - Depending on how
Hubwas used, it could potentially bleed through requests/"leak" an event id of another request if there was no proper request isolation set up.
Solution Brainstorm
In an effort to minimize friction we should bring back this API:
- Store it on the isolation scope (--> ideally avoids cross-request bleeds on server; doesn't matter for browser)
- Update the last event id on the isolation scope directly before sending the event (i.e. when chances are low that the event is still dropped on the client side)
- Unchanged to previous implementation: only update the id with error events
- Add a big warning that this API returns potentially nonsense
### Tasks
- [ ] https://github.com/getsentry/sentry-javascript/pull/12022
- [ ] https://github.com/getsentry/sentry-javascript/pull/12029
- [ ] https://github.com/getsentry/sentry-javascript/pull/12042
- [x] Update migration docs
- [ ] https://github.com/getsentry/sentry-docs/pull/10127