Skip to content

feat(android): Warn when Gradle resolves unexpected sentry-android version#6194

Closed
antonis wants to merge 1 commit into
mainfrom
antonis/warn-android-version-mismatch
Closed

feat(android): Warn when Gradle resolves unexpected sentry-android version#6194
antonis wants to merge 1 commit into
mainfrom
antonis/warn-android-version-mismatch

Conversation

@antonis
Copy link
Copy Markdown
Contributor

@antonis antonis commented May 20, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Adds a runtime warning (logged at SentryLevel.WARNING) when the resolved sentry-android version differs from what @sentry/react-native expects. The warning is visible when debug: true is enabled.

Changes:

  • Add EXPECTED_ANDROID_SDK_VERSION constant to RNSentryVersion.java
  • Compare it against io.sentry.android.core.BuildConfig.VERSION_NAME in updateWithReactFinals (runs after user configuration, so the debug logger is available)
  • Update scripts/update-android.sh to bump the new constant alongside other version references

💡 Motivation and Context

Closes #3671

When @sentry/react-native is combined with the Sentry Android Gradle Plugin (SAGP), Gradle dependency resolution can pick a newer sentry-android version than the RN SDK expects. This version mismatch causes IllegalStateException crashes at app startup. This change warns users at runtime so they can fix the issue before it escalates.

💚 How did you test it?

  • Verified scripts/update-android.sh set-version updates RNSentryVersion.java alongside build.gradle, expo-handler/build.gradle, and replay-stubs
  • Verified round-trip version bump (set to 9.0.0, back to 8.41.0) keeps all files in sync

📝 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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 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).


  • feat(android): Warn when Gradle resolves unexpected sentry-android version by antonis in #6194
  • Add a first-class expoRouterIntegration() with auto-registration (Add a first-class expoRouterIntegration() with auto-registration #6156) by alwx in #6189
  • feat(core): Add OTA SDK version to native sdk.packages by antonis in #6191
  • feat(core): Expose addConsoleInstrumentationFilter by antonis in #6180
  • fix(core): Preserve Metro config object identity in serializer wrapper by antonis in #6188
  • feat(replay): Expose captureSurfaceViews option for Android Session Replay by antonis in #6175
  • chore(deps): update Sentry Android Gradle Plugin to v6.7.1 by github-actions in #6190
  • fix(core): Fix includeWebFeedback crash by stubbing browser wrapper modules by antonis in #6150
  • fix(core): Deduplicate native HTTP breadcrumbs by antonis in #6132
  • chore(deps): bump brace-expansion from 5.0.5 to 5.0.6 by dependabot in #6183
  • chore(deps): bump ws from 8.16.0 to 8.20.1 by dependabot in #6184
  • fix(ios): Use conditional import for SentrySwizzle.h by antonis in #6186
  • fix(ios): use framework-style import for SentrySwizzle.h by alwx in #6181
  • chore(deps): bump actions/create-github-app-token from 3.1.1 to 3.2.0 by dependabot in #6178
  • chore(deps): bump github/codeql-action from 4.35.4 to 4.35.5 by dependabot in #6176
  • chore(deps): bump getsentry/craft from 2.26.3 to 2.26.5 by dependabot in #6179
  • chore(deps): bump getsentry/craft/.github/workflows/changelog-preview.yml from 2.26.3 to 2.26.5 by dependabot in #6177
  • fix(core): Resolve expo CLI directly instead of using npx in sourcemap upload by antonis in #6155
  • feat(core): Surface textComponentNames option in Metro config by antonis in #6169
  • chore(deps): update Sentry Android Gradle Plugin to v6.7.0 by github-actions in #6153
  • Filter ExceptionsManager.reportException duplicates in app-start init by alwx in #6145
  • chore(deps): update JavaScript SDK to v10.53.1 by github-actions in #6139
  • feat(core): Enable autoInjectSentryLabel by default in Metro config by antonis in #6141
  • feat(core): Respect Mask boundaries when reading sentry-label by antonis in #6142

Plus 18 more


🤖 This preview updates automatically when you update the PR.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 2026

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

Instructions and example for changelog

Please add an entry to CHANGELOG.md to the "Unreleased" section. Make sure the entry includes this PR's number.

Example:

## Unreleased

### Features

- Warn when Gradle resolves unexpected sentry-android version ([#6194](https://github.com/getsentry/sentry-react-native/pull/6194))

If none of the above apply, you can opt out of this check by adding #skip-changelog to the PR description or adding a skip-changelog label.

Generated by 🚫 dangerJS against 4f27bb7

Adds a runtime warning when the resolved sentry-android version differs
from what @sentry/react-native expects, which can happen when the Sentry
Android Gradle Plugin's autoInstallation overrides the pinned version.

Closes #3671

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@antonis antonis force-pushed the antonis/warn-android-version-mismatch branch from 8795974 to 4f27bb7 Compare May 20, 2026 14:49
@antonis antonis closed this May 20, 2026
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.

Add warning when Gradle resolves to unsupported sentry-android version

1 participant