In-app overrides should be applied server side during symbolication
- Dominant language
- Python
- Stars
- 44.8k
- Forks
- 4.9k
- Avg merge
- 21h 10m
- Merged PRs (30d)
- 635
Description
### Environment
SaaS (https://sentry.io/)
### Steps to Reproduce
Sentry users debug identifiers to find an iOS app dsym: https://docs.sentry.io/platforms/native/data-management/debug-files/identifiers/
This allows SDKs to send events with just the `debug_id ` and no `code_file ` (code_file is optional here: https://develop.sentry.dev/sdk/data-model/event-payloads/debugmeta/#mach-o-images) In some cases, such as when retrieving data from MetricKit, the only information available is the debug_id, the client has no way to know the code_file, that information is in the dysm.
If you use MetricKit (or any other mechanism that sets debug_id but not code_file) the in_app categorization of frames in a stacktrace can be wrong.
### Expected Result
The in-app attribute should be correct even when capturing an event with `debug_id`.
### Actual Result
The in-app attribute is wrong, and hardcoded to true or false by the SDK.
We allow users to customize what frames are considered to be in-app but that is done by providing paths to in-app overrides. This cannot be implemented correctly on the client, because the client doesn't know the path. The in-app paths need to be shared with the symbolication pipeline to decide if a given debug_id should be considered in-app or not.
### Product Area
Issues - Source Maps
### Link
https://portola.sentry.io/issues/7266158906/events/7c5bfc390c214ff69379fd43788092a1/?environment=App%20Store&project=4506735735865344&query=is%3Aunresolved%20mechanism%3Amx_hang_diagnostic&referrer=next-event
### DSN
_No response_
### Version
_No response_
Contributor guide
Research direction
Start by tracing the server-side symbolication pipeline and how in-app overrides are handled for iOS events containing only a debug_id; the issue names no repository files or tests. Reproduce the MetricKit-style case and verify that configured in-app paths determine frame classification after symbolication.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, python
- Domain
- backend, observability-sre
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100