Skip to content

ref(feedback): Remove deprecated user feedback APIs - #6337

Merged
runningcode merged 3 commits into
9.x.xfrom
no/remove-deprecated-user-feedback
Oct 22, 2026
Merged

runningcode merged 3 commits into
9.x.xfrom
no/remove-deprecated-user-feedback

Conversation

@runningcode

@runningcode runningcode commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

📜 Description

Remove the user feedback APIs that were deprecated in favor of Sentry.feedback() and io.sentry.protocol.Feedback.

Here's a list of what is removed provided by my agent:

  • UserFeedback, Sentry.captureUserFeedback(...) and captureUserFeedback on IScopes/ISentryClient and their implementations
  • SentryEnvelopeItem.fromUserFeedback(...)
  • Sentry.captureFeedback(...) (3 overloads): use Sentry.feedback().capture(...). HubAdapter now calls that directly, like ScopesAdapter.
  • Sentry.showUserFeedbackDialog(...) (3 overloads): use Sentry.feedback().show(...)
  • Android: SentryUserFeedbackDialog (use SentryUserFeedbackForm) and the SentryUserFeedbackButton view, along with the drawables and styleable only it used
  • Compose: the SentryUserFeedbackButton composable

SentryItemType.UserFeedback (user_report) stays. The SDK no longer creates these items, but hybrid SDKs and envelopes cached by older versions can still pass them through rate limiting and client reports, so those tests now build a raw user_report item.

The Compose sample replaces the removed composable with a plain Button calling Sentry.feedback().show(...). The Android sample keeps the button icon, which moves from sentry-compose into the sample.

⚠️ Hybrid SDKs: sentry-unreal

sentry-unreal's Android bridge calls Sentry.captureFeedback(feedback, hint, callback) in SentryBridgeJava.java (captureFeedbackWithScope). It won't compile against v9 until it switches to Sentry.feedback().capture(feedback, hint, callback), which already exists in 8.x, so they can switch before upgrading. A code search found no other hybrid SDK calling the removed APIs.

💡 Motivation and Context

These APIs were deprecated in 8.x with a note that they would be removed in the next major.

💚 How did you test it?

  • ./gradlew spotlessApply apiDump
  • ./gradlew :sentry:test :sentry-android-core:testReleaseUnitTest :sentry-compose:testReleaseUnitTest :sentry-samples:sentry-samples-android:compileReleaseKotlin :sentry-android-integration-tests:sentry-uitest-android:compileReleaseAndroidTestKotlin

📝 Checklist

  • I added GH Issue ID & Linear ID
  • I added tests to verify the 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.
  • Review from the native team if needed.
  • No breaking change or entry added to the changelog.
  • No breaking change for hybrid SDKs or communicated to hybrid SDKs.
  • Public API changes reviewed by another Mobile SDK team member or implemented according to the develop docs spec.

🔮 Next steps

  • Let the sentry-unreal team know about the Sentry.captureFeedback removal (see above).
  • Remove the deprecated APIs from the docs and add them to the v8 → v9 migration guide (JAVA-732).
  • ref(core): Remove deprecated Hub APIs #6223 deletes HubAdapter, so whichever of the two merges second needs a small conflict fix there.

🤖 Generated with Claude Code

@linear-code

linear-code Bot commented Oct 21, 2026

Copy link
Copy Markdown

JAVA-493

@sentry

sentry Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

📲 Install Builds

Android

🔗 App Name App ID Version Configuration
SDK Size io.sentry.tests.size 8.61.0 (1) release

⚙️ sentry-android Build Distribution Settings

@runningcode runningcode added the next-major This should only be merged in the next major version. label Oct 21, 2026
runningcode and others added 2 commits October 21, 2026 16:42
Remove UserFeedback, captureUserFeedback and fromUserFeedback from the
core SDK, plus SentryUserFeedbackDialog and the SentryUserFeedbackButton
view and composable on Android. All were deprecated in 8.x in favor of
Sentry.feedback() and SentryUserFeedbackForm.

SentryItemType.UserFeedback stays because hybrid SDKs and envelopes
cached by older versions can still carry user_report items.

Resolves JAVA-493

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@runningcode
runningcode force-pushed the no/remove-deprecated-user-feedback branch from 59d5ae1 to b92b2b9 Compare October 21, 2026 14:47
@runningcode
runningcode marked this pull request as ready for review October 22, 2026 09:20

@romtsn romtsn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, but can we also drop the following ones?

  • Sentry.showUserFeedbackDialog(...): 3 overloads, sentry/src/main/java/io/sentry/Sentry.java:1423-1448
  • Sentry.captureFeedback(...): 3 overloads, sentry/src/main/java/io/sentry/Sentry.java:851-880

…eedbackDialog

Both were thin wrappers around Sentry.feedback(), deprecated in 8.x.
HubAdapter now calls Sentry.feedback().capture(...) directly, like
ScopesAdapter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@runningcode
runningcode merged commit 1f0e1e0 into 9.x.x Oct 22, 2026
65 of 66 checks passed
@runningcode
runningcode deleted the no/remove-deprecated-user-feedback branch October 22, 2026 12:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

next-major This should only be merged in the next major version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants