Skip to content

Add expoUpdatesListenerIntegration that records breadcrumbs for Expo Updates lifecycle events#5795

Open
alwx wants to merge 4 commits intomainfrom
alwx/feature/expo-updates-listener
Open

Add expoUpdatesListenerIntegration that records breadcrumbs for Expo Updates lifecycle events#5795
alwx wants to merge 4 commits intomainfrom
alwx/feature/expo-updates-listener

Conversation

@alwx
Copy link
Contributor

@alwx alwx commented Mar 10, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Add expoUpdatesListenerIntegration that records breadcrumbs for Expo Updates lifecycle events

  • Tracks update checks, downloads, errors, rollbacks, and restarts as expo.updates breadcrumbs
  • Enabled by default in Expo apps (requires expo-updates to be installed)

Fixes #5425

📝 Checklist

  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing
  • No breaking changes

🔮 Next steps

@alwx alwx self-assigned this Mar 10, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Mar 10, 2026

Semver Impact of This PR

None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


  • Add expoUpdatesListenerIntegration that records breadcrumbs for Expo Updates lifecycle events by alwx in #5795
  • feat(core): Generate sentry.options.json from Expo plugin config by antonis in #5804
  • Pass screenshotStrategy option from mobileReplayIntegration to the Android SDK by alwx in #5808
  • fix(core): Exclude server-only AI/MCP modules from native bundles by antonis in #5802
  • chore(deps): update Cocoa SDK to v9.7.0 by github-actions in #5805
  • chore(deps): update CLI to v3.3.3 by github-actions in #5806
  • Automatically capture a warning event when Expo Updates performs an emergency launch by alwx in #5794
  • fix(core): Improve native init log message clarity by antonis in #5801
  • feat(core): Add environment option to Expo config plugin by antonis in #5796
  • chore(deps): update CLI to v3.3.2 by github-actions in #5799
  • chore(deps): update Maestro to v2.3.0 by github-actions in #5790
  • chore(deps): update JavaScript SDK to v10.43.0 by github-actions in #5791
  • chore(deps): update CLI to v3.3.1 by github-actions in #5793
  • fix(core): Defer initial navigation span creation until navigation container is registered by antonis in #5789
  • Ref(Sample): Add existing bundled playgroundscreen into sample app by lucas-zimerman in #5778
  • Auto tracing for expo-image and expo-asset by alwx in #5718
  • Expo Updates: add tags with Expo Updates context vars to make them searchable/filterable by alwx in #5788
  • chore(deps): bump actions/setup-node from 6.2.0 to 6.3.0 by dependabot in #5784
  • chore(deps): bump github/codeql-action from 4.32.4 to 4.32.6 by dependabot in #5781
  • chore(deps): bump getsentry/craft/.github/workflows/changelog-preview.yml from 2.23.1 to 2.23.2 by dependabot in #5782
  • chore(deps): bump getsentry/craft from 2.21.7 to 2.23.2 by dependabot in #5783
  • chore(deps): bump tar to ^7.5.10 by antonis in #5777

🤖 This preview updates automatically when you update the PR.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 10, 2026

Fails
🚫 Pull request is not ready for merge, please add the "ready-to-merge" label to the pull request
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against bc6712b

@alwx alwx changed the title WIP: Expo Updates listener Add expoUpdatesListenerIntegration that records breadcrumbs for Expo Updates lifecycle events Mar 12, 2026
@alwx alwx marked this pull request as ready for review March 12, 2026 13:58
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

const ctx = event.context;
handleStateChange(previousContext, ctx);
previousContext = ctx;
});
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Listener callback lacks try/catch, risking app crash

Medium Severity

The addListener callback from expo-updates is not wrapped in a try/catch. If event.context is unexpectedly null/undefined, or if any getData function throws (e.g., the non-null assertion ctx.rollback!.commitTime at line 98, or the as Error cast at lines 82/90), the exception propagates unhandled into expo-updates internals and could crash the host app. Per project rules, SDK instrumentation errors must never crash the host application — dangerous paths need try/catch with graceful fallback. This violates the rule from the rules file requiring error paths to be handled explicitly.

Fix in Cursor Fix in Web

Triggered by project rule: PR Review Guidelines for Cursor Bot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Expo] Expo Updates improvements

1 participant