Sentry ​
Sentry is our error monitoring platform. It captures crashes, API errors, and issues that happen in the app, giving us visibility into problems that users experience in the wild.
For the full guide with screenshots, see the Confluence documentation.
What Sentry Does ​
When something goes wrong in the app, Sentry automatically:
- Captures the error with a full stack trace
- Records what happened before (navigation, API calls, user actions)
- Attaches context about the job, user, and app state
- Groups similar errors so we can see patterns
This means when an engineer reports "the app crashed", we can actually see what happened rather than guessing.
When Sentry Captures Data ​
| Situation | What Happens |
|---|---|
| App crash | Full error captured with context |
| API error (5xx) | Captured with request/response details |
| API error (4xx) | Logged as breadcrumb only, not captured |
| Timeout | Logged as breadcrumb with warning |
| Navigation | Added to breadcrumb trail |
Authentication errors (401) are intentionally not captured as errors since they're expected during normal token refresh.
What Context Gets Attached ​
When an error occurs, Sentry includes:
- User ID - Which engineer was affected
- Job details - Job ID, type, and order reference if on a job screen
- Navigation trail - What screens they visited before the error
- Feature flags - Which experiments/features were enabled
- App version - Both the native build and OTA update version
Environments ​
Sentry captures errors from staging and production builds. Development builds don't send data to Sentry.
| Environment | Errors Captured | Session Replay |
|---|---|---|
| Production | Yes | 5% of errors |
| Staging | Yes | No |
| Development | No | No |
Accessing Sentry ​
Sentry dashboard: sentry.io (requires team access)
Finding Issues for a Specific User ​
- Go to Issues in Sentry
- Search for
user.id:123456(replace with the engineer's user ID) - Filter by date range if needed
Finding Issues for a Job ​
- Search for
jobId:ABC123or check the Job context in the issue detail - The order reference (
orderShortId) is also included for cross-referencing
Privacy and Data Handling ​
Sentry automatically redacts sensitive information:
- Names, email addresses, phone numbers
- Addresses and postcodes
- Gas Safe registration numbers
- Any field that could identify a customer
Session replays (when captured) mask all text input fields and sensitive UI areas.
When to Check Sentry ​
- Bug reports - Look up the user and timeframe to find related errors
- After releases - Monitor for new errors appearing in production
- Investigating flaky behaviour - Breadcrumbs can reveal what led to an issue
- API integration problems - See exactly what requests failed and why