From f833114c1884781d1e52efd07fb20fbaeb4683c8 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 11:04:10 +0000 Subject: [PATCH 1/7] docs(flutter): Clarify replay with feedback Co-Authored-By: Gino Buenaflor --- .../flutter/session-replay/configuration.mdx | 2 +- .../guides/flutter/session-replay/index.mdx | 20 +++++++++++------- .../guides/flutter/user-feedback/index.mdx | 21 +++++++++++++++++++ 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx b/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx index d6f2712c69cd3..dab87dea6a3a4 100644 --- a/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx +++ b/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx @@ -13,7 +13,7 @@ The following options can be configured in the `options.replay` field of your Se | Key | Type | Default | Description | | ------------------------ | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | sessionSampleRate | `double` | `0` | The sample rate for replays that begin recording immediately and last the entirety of the user's session. `1.0` collects all replays, and `0` collects none. | -| onErrorSampleRate | `double` | `0` | The sample rate for replays that are recorded when an error happens. This type of replay will record up to a minute of events prior to the error and continue recording until the session ends. `1.0` captures all sessions with an error, and `0` captures none. | +| onErrorSampleRate | `double` | `0` | The sample rate for buffered replays sent when the SDK captures an error or user feedback. The replay includes up to 30 seconds of activity before the trigger and continues recording until the session ends. `1.0` buffers every session not selected by `sessionSampleRate`, and `0` disables buffering. | | quality | [SentryReplayQuality](https://pub.dev/documentation/sentry_flutter/latest/sentry_flutter/SentryReplayQuality.html) | `SentryReplayQuality.medium` | Defines the image quality of the session replay. The higher the quality, the more accurate the replay will be, but also more data to transfer and more CPU load. | ## Configure Network Details diff --git a/docs/platforms/dart/guides/flutter/session-replay/index.mdx b/docs/platforms/dart/guides/flutter/session-replay/index.mdx index cd06cba1f7065..74d7f94aef720 100644 --- a/docs/platforms/dart/guides/flutter/session-replay/index.mdx +++ b/docs/platforms/dart/guides/flutter/session-replay/index.mdx @@ -45,6 +45,7 @@ await SentryFlutter.init( ), ); ``` + For more details on the available properties, see the [SentryReplayOptions](https://pub.dev/documentation/sentry_flutter/latest/sentry_flutter/SentryReplayOptions-class.html), which is part of [SentryFlutterOptions](https://pub.dev/documentation/sentry_flutter/latest/sentry_flutter/SentryFlutterOptions-class.html). ## Verify @@ -59,19 +60,24 @@ A user session starts when the Sentry SDK is initialized or when the application The session will be terminated if the application has spent in the background more than 30 seconds or when the maximum duration of 60 minutes is reached. You can adjust the [session tracking interval](/platforms/dart/guides/flutter/configuration/releases/#sessions) to extend or shorten the duration of a single replay, depending on your needs. Note that if the application exits abnormally while running in the background, the session will also be terminated. -### Replay Captures on Errors Only +### Buffered Replays for Errors and User Feedback + +If you don't want to send every replay, set `onErrorSampleRate` to buffer up to 30 seconds of activity on the device. The SDK sends the buffer when it captures an error or user feedback. For the built-in `SentryFeedbackForm`, the SDK sends the buffer when the form opens so the replay shows what happened before the user started entering feedback. + +```dart +options.replay.onErrorSampleRate = 1.0; +``` -If you prefer not to record an entire session, you can elect to capture a replay only if an error occurs. In this case, the integration will buffer up to one minute worth of events prior to the error being thrown. It will continue to record the session, following the rules above regarding session life and activity. Read the [sampling](#sampling) section for configuration options. +A value of `1.0` buffers every session that wasn't selected by `sessionSampleRate`. After the SDK sends the buffer, it continues recording until the session ends. This behavior is available on iOS and Android in Sentry Flutter SDK `9.0.0` and later. ## Sampling -Sampling allows you to control how much of your website's traffic will result in a Session Replay. There are two sample rates you can adjust to get the replays relevant to you: +Sampling controls how much of your app's traffic results in a Session Replay. You can configure two sample rates: -1. `sessionSampleRate` - The sample rate for replays that begin recording immediately and last the entirety of a user's session. -2. `onErrorSampleRate` - The sample rate for replays that are recorded when an error happens. This type of replay will record - up to a minute of events prior to the error and continue recording until the session ends. +1. `sessionSampleRate` - The sample rate for replays that the SDK sends throughout the user's session. +2. `onErrorSampleRate` - The sample rate for replays that the SDK buffers and sends when it captures an error or user feedback. The replay includes up to 30 seconds of activity before the trigger and continues recording until the session ends. -Sampling starts as soon as a session begins. The `sessionSampleRate` is then evaluated. If the session is sampled, replay recording will start immediately. If not, `onErrorSampleRate` will be evaluated. If the session is sampled at this point, the replay will be buffered and will only be uploaded to Sentry if an error occurs. +Sampling starts when a session begins. The SDK evaluates `sessionSampleRate` first. If the session isn't selected, it evaluates `onErrorSampleRate`. When selected by `onErrorSampleRate`, the SDK keeps the replay in a rolling buffer and sends it only after an error, a call to `Sentry.captureFeedback()`, or the built-in feedback form opens. ## PII & Privacy Considerations diff --git a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx index 9bb0bf5064c9c..4624cd0e0de4a 100644 --- a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx +++ b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx @@ -12,6 +12,27 @@ og_image: /og-images/platforms-dart-guides-flutter-user-feedback.png When a user experiences an error, Sentry provides the ability to collect additional feedback. You can collect feedback according to the method supported by the SDK. +## Include a Session Replay + +To include the activity leading up to user feedback, enable buffered replays in Sentry Flutter SDK `9.0.0` or later: + +```dart +await SentryFlutter.init( + (options) { + options.replay.onErrorSampleRate = 1.0; + }, + appRunner: () => runApp( + SentryWidget( + child: MyApp(), + ), + ), +); +``` + +The SDK keeps up to 30 seconds of replay activity on the device for every session not selected by `sessionSampleRate`. It sends the buffer when your app calls `Sentry.captureFeedback()` or opens the built-in `SentryFeedbackForm`. Capturing at form open preserves the activity that led the user to report the problem instead of recording only their interactions with the form. + +Buffered replays are available on iOS and Android. To adjust the percentage of sessions buffered, set `onErrorSampleRate` between `0.0` and `1.0`. See [Session Replay sampling](/platforms/dart/guides/flutter/session-replay/#sampling) for details. + ## User Feedback API The user feedback API allows you to collect user feedback while utilizing your own UI. Sentry pairs the feedback with the original event, giving you additional insight into issues. Sentry needs the `associatedEventId` to be able to associate the user feedback to the corresponding event. There are several ways to get the `associatedEventId`: From 88b065b6e04425efd6443bf7ec7f3baf2ee60b0f Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 9 Sep 2026 16:44:36 +0100 Subject: [PATCH 2/7] docs(flutter): Scope feedback replay note to the widget section The user feedback page duplicated the onErrorSampleRate setup and sampling semantics that the Session Replay page owns. Replace it with a short `### Session Replay` subsection under `SentryFeedbackWidget`, the same placement and depth the Android and Apple user feedback pages use, and cross-link to the replay page instead of restating sampling rules. Also use `SentryFeedbackWidget` in the replay page so the naming matches the rest of the Flutter docs. Co-Authored-By: Claude Co-authored-by: Cursor --- .../guides/flutter/session-replay/index.mdx | 4 +-- .../guides/flutter/user-feedback/index.mdx | 25 +++---------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/docs/platforms/dart/guides/flutter/session-replay/index.mdx b/docs/platforms/dart/guides/flutter/session-replay/index.mdx index 74d7f94aef720..40b4fa284206a 100644 --- a/docs/platforms/dart/guides/flutter/session-replay/index.mdx +++ b/docs/platforms/dart/guides/flutter/session-replay/index.mdx @@ -62,7 +62,7 @@ The session will be terminated if the application has spent in the background mo ### Buffered Replays for Errors and User Feedback -If you don't want to send every replay, set `onErrorSampleRate` to buffer up to 30 seconds of activity on the device. The SDK sends the buffer when it captures an error or user feedback. For the built-in `SentryFeedbackForm`, the SDK sends the buffer when the form opens so the replay shows what happened before the user started entering feedback. +If you don't want to send every replay, set `onErrorSampleRate` to buffer up to 30 seconds of activity on the device. The SDK sends the buffer when it captures an error or user feedback. For the built-in `SentryFeedbackWidget`, the SDK sends the buffer when the widget opens so the replay shows what happened before the user started entering feedback. ```dart options.replay.onErrorSampleRate = 1.0; @@ -77,7 +77,7 @@ Sampling controls how much of your app's traffic results in a Session Replay. Yo 1. `sessionSampleRate` - The sample rate for replays that the SDK sends throughout the user's session. 2. `onErrorSampleRate` - The sample rate for replays that the SDK buffers and sends when it captures an error or user feedback. The replay includes up to 30 seconds of activity before the trigger and continues recording until the session ends. -Sampling starts when a session begins. The SDK evaluates `sessionSampleRate` first. If the session isn't selected, it evaluates `onErrorSampleRate`. When selected by `onErrorSampleRate`, the SDK keeps the replay in a rolling buffer and sends it only after an error, a call to `Sentry.captureFeedback()`, or the built-in feedback form opens. +Sampling starts when a session begins. The SDK evaluates `sessionSampleRate` first. If the session isn't selected, it evaluates `onErrorSampleRate`. When selected by `onErrorSampleRate`, the SDK keeps the replay in a rolling buffer and sends it only after an error, a call to `Sentry.captureFeedback()`, or the built-in feedback widget opens. ## PII & Privacy Considerations diff --git a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx index 4624cd0e0de4a..7cf9f82fb80a4 100644 --- a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx +++ b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx @@ -12,27 +12,6 @@ og_image: /og-images/platforms-dart-guides-flutter-user-feedback.png When a user experiences an error, Sentry provides the ability to collect additional feedback. You can collect feedback according to the method supported by the SDK. -## Include a Session Replay - -To include the activity leading up to user feedback, enable buffered replays in Sentry Flutter SDK `9.0.0` or later: - -```dart -await SentryFlutter.init( - (options) { - options.replay.onErrorSampleRate = 1.0; - }, - appRunner: () => runApp( - SentryWidget( - child: MyApp(), - ), - ), -); -``` - -The SDK keeps up to 30 seconds of replay activity on the device for every session not selected by `sessionSampleRate`. It sends the buffer when your app calls `Sentry.captureFeedback()` or opens the built-in `SentryFeedbackForm`. Capturing at form open preserves the activity that led the user to report the problem instead of recording only their interactions with the form. - -Buffered replays are available on iOS and Android. To adjust the percentage of sessions buffered, set `onErrorSampleRate` between `0.0` and `1.0`. See [Session Replay sampling](/platforms/dart/guides/flutter/session-replay/#sampling) for details. - ## User Feedback API The user feedback API allows you to collect user feedback while utilizing your own UI. Sentry pairs the feedback with the original event, giving you additional insight into issues. Sentry needs the `associatedEventId` to be able to associate the user feedback to the corresponding event. There are several ways to get the `associatedEventId`: @@ -95,6 +74,10 @@ Future main() async { } ``` +### Session Replay + +The `SentryFeedbackWidget` works with Session Replay on iOS and Android in Sentry Flutter SDK `9.0.0` and later. With `onErrorSampleRate` set, the SDK buffers up to 30 seconds of the user's session and sends it when the widget opens or when your app calls `Sentry.captureFeedback()`. This way, the replay shows what led the user to report the problem instead of only their interactions with the widget. + ### Customization You can customize the `SentryFeedbackWidget` to your needs by modifying the `SentryFeedbackOptions` class, which is provided by the `SentryFlutter.init` options. From 328e2900bf861d0c132c8bce494cc29cf4658a48 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 9 Sep 2026 16:51:18 +0100 Subject: [PATCH 3/7] docs(flutter): Use SentryFeedbackForm and minimize replay copy changes `SentryFeedbackWidget` is a deprecated typedef alias for `SentryFeedbackForm`, so rename the class references and the heading on the user feedback page. Also reduce the Session Replay edits to the factual corrections. The buffer is 30 seconds rather than a minute, per the ring buffer size in develop-docs/sdk/telemetry/replays.mdx, and the feedback form flushes it on open, per develop-docs/sdk/telemetry/feedbacks.mdx. The surrounding sentences go back to the wording the Apple page uses, and the duplicate `onErrorSampleRate` snippet and the redundant platform note are dropped, since the page already documents iOS/Android and SDK `9.0.0` up top. Co-Authored-By: Claude Co-authored-by: Cursor --- .../flutter/session-replay/configuration.mdx | 2 +- .../guides/flutter/session-replay/index.mdx | 18 ++++++------------ .../guides/flutter/user-feedback/index.mdx | 14 +++++++------- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx b/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx index dab87dea6a3a4..024694459aaf8 100644 --- a/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx +++ b/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx @@ -13,7 +13,7 @@ The following options can be configured in the `options.replay` field of your Se | Key | Type | Default | Description | | ------------------------ | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | sessionSampleRate | `double` | `0` | The sample rate for replays that begin recording immediately and last the entirety of the user's session. `1.0` collects all replays, and `0` collects none. | -| onErrorSampleRate | `double` | `0` | The sample rate for buffered replays sent when the SDK captures an error or user feedback. The replay includes up to 30 seconds of activity before the trigger and continues recording until the session ends. `1.0` buffers every session not selected by `sessionSampleRate`, and `0` disables buffering. | +| onErrorSampleRate | `double` | `0` | The sample rate for replays that are recorded when an error happens or when a user submits feedback. This type of replay will record up to 30 seconds of events prior to the trigger and continue recording until the session ends. `1.0` captures all sessions with an error or feedback, and `0` captures none. | | quality | [SentryReplayQuality](https://pub.dev/documentation/sentry_flutter/latest/sentry_flutter/SentryReplayQuality.html) | `SentryReplayQuality.medium` | Defines the image quality of the session replay. The higher the quality, the more accurate the replay will be, but also more data to transfer and more CPU load. | ## Configure Network Details diff --git a/docs/platforms/dart/guides/flutter/session-replay/index.mdx b/docs/platforms/dart/guides/flutter/session-replay/index.mdx index 40b4fa284206a..4e2ac659441b4 100644 --- a/docs/platforms/dart/guides/flutter/session-replay/index.mdx +++ b/docs/platforms/dart/guides/flutter/session-replay/index.mdx @@ -45,7 +45,6 @@ await SentryFlutter.init( ), ); ``` - For more details on the available properties, see the [SentryReplayOptions](https://pub.dev/documentation/sentry_flutter/latest/sentry_flutter/SentryReplayOptions-class.html), which is part of [SentryFlutterOptions](https://pub.dev/documentation/sentry_flutter/latest/sentry_flutter/SentryFlutterOptions-class.html). ## Verify @@ -62,22 +61,17 @@ The session will be terminated if the application has spent in the background mo ### Buffered Replays for Errors and User Feedback -If you don't want to send every replay, set `onErrorSampleRate` to buffer up to 30 seconds of activity on the device. The SDK sends the buffer when it captures an error or user feedback. For the built-in `SentryFeedbackWidget`, the SDK sends the buffer when the widget opens so the replay shows what happened before the user started entering feedback. - -```dart -options.replay.onErrorSampleRate = 1.0; -``` - -A value of `1.0` buffers every session that wasn't selected by `sessionSampleRate`. After the SDK sends the buffer, it continues recording until the session ends. This behavior is available on iOS and Android in Sentry Flutter SDK `9.0.0` and later. +If you prefer not to record an entire session, you can elect to capture a replay only when an error occurs or when a user submits feedback. In this case, the integration will buffer up to 30 seconds worth of events prior to the trigger. It will continue to record the session, following the rules above regarding session life and activity. For the built-in `SentryFeedbackForm`, the buffer is sent when the form opens, so the replay shows what happened before the user started entering feedback. Read the [sampling](#sampling) section for configuration options. ## Sampling -Sampling controls how much of your app's traffic results in a Session Replay. You can configure two sample rates: +Sampling allows you to control how much of your app's traffic will result in a Session Replay. There are two sample rates you can adjust to get the replays relevant to you: -1. `sessionSampleRate` - The sample rate for replays that the SDK sends throughout the user's session. -2. `onErrorSampleRate` - The sample rate for replays that the SDK buffers and sends when it captures an error or user feedback. The replay includes up to 30 seconds of activity before the trigger and continues recording until the session ends. +1. `sessionSampleRate` - The sample rate for replays that begin recording immediately and last the entirety of a user's session. +2. `onErrorSampleRate` - The sample rate for replays that are recorded when an error happens or when a user submits feedback. This type of replay will record + up to 30 seconds of events prior to the trigger and continue recording until the session ends. -Sampling starts when a session begins. The SDK evaluates `sessionSampleRate` first. If the session isn't selected, it evaluates `onErrorSampleRate`. When selected by `onErrorSampleRate`, the SDK keeps the replay in a rolling buffer and sends it only after an error, a call to `Sentry.captureFeedback()`, or the built-in feedback widget opens. +Sampling starts as soon as a session begins. The `sessionSampleRate` is then evaluated. If the session is sampled, replay recording will start immediately. If not, `onErrorSampleRate` will be evaluated. If the session is sampled at this point, the replay will be buffered and will only be uploaded to Sentry if an error occurs, your app calls `Sentry.captureFeedback()`, or the built-in feedback form opens. ## PII & Privacy Considerations diff --git a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx index 7cf9f82fb80a4..def18044d9c8c 100644 --- a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx +++ b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx @@ -22,9 +22,9 @@ The user feedback API allows you to collect user feedback while utilizing your o -## SentryFeedbackWidget +## SentryFeedbackForm -Use the `SentryFeedbackWidget` to let users send feedback data to Sentry. +Use the `SentryFeedbackForm` to let users send feedback data to Sentry. The widget requests and collects the user's name, email address, and a description of what occurred. When an event identifier is provided, Sentry pairs the feedback with the original event, giving you additional insights into issues. @@ -38,7 +38,7 @@ The image below provides an example of the widget, though yours may differ depen ### Integration -One possible use for the `SentryFeedbackWidget` is to listen for specific Sentry events in the `beforeSend` callback and show the widget to users. Users also can take a screenshot from their app's UI if the `SentryWidget` is wrapped around the main app widget. +One possible use for the `SentryFeedbackForm` is to listen for specific Sentry events in the `beforeSend` callback and show the widget to users. Users also can take a screenshot from their app's UI if the `SentryWidget` is wrapped around the main app widget. ```dart // The example uses the `NavigatorState` to present the widget. Adapt as needed to your navigation stack. @@ -57,7 +57,7 @@ Future main() async { final context = navigatorKey.currentContext; if (context != null && context.mounted) { - SentryFeedbackWidget.show( + SentryFeedbackForm.show( context, associatedEventId: event.eventId, screenshot: screenshot, @@ -76,11 +76,11 @@ Future main() async { ### Session Replay -The `SentryFeedbackWidget` works with Session Replay on iOS and Android in Sentry Flutter SDK `9.0.0` and later. With `onErrorSampleRate` set, the SDK buffers up to 30 seconds of the user's session and sends it when the widget opens or when your app calls `Sentry.captureFeedback()`. This way, the replay shows what led the user to report the problem instead of only their interactions with the widget. +The `SentryFeedbackForm` works with Session Replay on iOS and Android in Sentry Flutter SDK `9.0.0` and later. With `onErrorSampleRate` set, the SDK buffers up to 30 seconds of the user's session and sends it when the form opens or when your app calls `Sentry.captureFeedback()`. This way, the replay shows what led the user to report the problem instead of only their interactions with the form. ### Customization -You can customize the `SentryFeedbackWidget` to your needs by modifying the `SentryFeedbackOptions` class, which is provided by the `SentryFlutter.init` options. +You can customize the `SentryFeedbackForm` to your needs by modifying the `SentryFeedbackOptions` class, which is provided by the `SentryFlutter.init` options. ```dart SentryFlutter.init((options) { @@ -94,7 +94,7 @@ SentryFlutter.init((options) { }); ``` -The following table lists all the options you can customize to change behavior of the `SentryFeedbackWidget`. +The following table lists all the options you can customize to change behavior of the `SentryFeedbackForm`. | Option | Type | Default | Description | | - | - | - | - | From 77e1aa2f76ab99fec43584e5166a2bb2da4a2b45 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 9 Sep 2026 16:52:42 +0100 Subject: [PATCH 4/7] docs(flutter): Note the SDK version that renamed the feedback form `SentryFeedbackForm` only exists in sentry-dart `9.21.0` and later, but the page requires only `9.0.0`, so readers on an earlier 9.x would find no such class. Co-Authored-By: Claude Co-authored-by: Cursor --- docs/platforms/dart/guides/flutter/user-feedback/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx index def18044d9c8c..2a8f5ccc66082 100644 --- a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx +++ b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx @@ -24,7 +24,7 @@ The user feedback API allows you to collect user feedback while utilizing your o ## SentryFeedbackForm -Use the `SentryFeedbackForm` to let users send feedback data to Sentry. +Use the `SentryFeedbackForm` to let users send feedback data to Sentry. In Sentry Flutter SDK versions before `9.21.0`, this class is named `SentryFeedbackWidget`. The widget requests and collects the user's name, email address, and a description of what occurred. When an event identifier is provided, Sentry pairs the feedback with the original event, giving you additional insights into issues. From 36a12932edd369b4c39fa3ed38df64c27d682746 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Wed, 9 Sep 2026 16:01:31 +0000 Subject: [PATCH 5/7] docs(flutter): Fix feedback trigger wording contradiction --- .../dart/guides/flutter/session-replay/configuration.mdx | 2 +- docs/platforms/dart/guides/flutter/session-replay/index.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx b/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx index 024694459aaf8..b28e3bc94779a 100644 --- a/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx +++ b/docs/platforms/dart/guides/flutter/session-replay/configuration.mdx @@ -13,7 +13,7 @@ The following options can be configured in the `options.replay` field of your Se | Key | Type | Default | Description | | ------------------------ | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | sessionSampleRate | `double` | `0` | The sample rate for replays that begin recording immediately and last the entirety of the user's session. `1.0` collects all replays, and `0` collects none. | -| onErrorSampleRate | `double` | `0` | The sample rate for replays that are recorded when an error happens or when a user submits feedback. This type of replay will record up to 30 seconds of events prior to the trigger and continue recording until the session ends. `1.0` captures all sessions with an error or feedback, and `0` captures none. | +| onErrorSampleRate | `double` | `0` | The sample rate for replays that are recorded when an error happens or when feedback is captured. This type of replay will record up to 30 seconds of events prior to the trigger and continue recording until the session ends. `1.0` captures all sessions with an error or feedback, and `0` captures none. | | quality | [SentryReplayQuality](https://pub.dev/documentation/sentry_flutter/latest/sentry_flutter/SentryReplayQuality.html) | `SentryReplayQuality.medium` | Defines the image quality of the session replay. The higher the quality, the more accurate the replay will be, but also more data to transfer and more CPU load. | ## Configure Network Details diff --git a/docs/platforms/dart/guides/flutter/session-replay/index.mdx b/docs/platforms/dart/guides/flutter/session-replay/index.mdx index 4e2ac659441b4..a22294015fc8a 100644 --- a/docs/platforms/dart/guides/flutter/session-replay/index.mdx +++ b/docs/platforms/dart/guides/flutter/session-replay/index.mdx @@ -61,14 +61,14 @@ The session will be terminated if the application has spent in the background mo ### Buffered Replays for Errors and User Feedback -If you prefer not to record an entire session, you can elect to capture a replay only when an error occurs or when a user submits feedback. In this case, the integration will buffer up to 30 seconds worth of events prior to the trigger. It will continue to record the session, following the rules above regarding session life and activity. For the built-in `SentryFeedbackForm`, the buffer is sent when the form opens, so the replay shows what happened before the user started entering feedback. Read the [sampling](#sampling) section for configuration options. +If you prefer not to record an entire session, you can elect to capture a replay only when an error occurs or when your app captures feedback. In this case, the integration will buffer up to 30 seconds worth of events prior to the trigger. It will continue to record the session, following the rules above regarding session life and activity. For the built-in `SentryFeedbackForm`, the buffer is sent when the form opens, so the replay shows what happened before the user started entering feedback. Read the [sampling](#sampling) section for configuration options. ## Sampling Sampling allows you to control how much of your app's traffic will result in a Session Replay. There are two sample rates you can adjust to get the replays relevant to you: 1. `sessionSampleRate` - The sample rate for replays that begin recording immediately and last the entirety of a user's session. -2. `onErrorSampleRate` - The sample rate for replays that are recorded when an error happens or when a user submits feedback. This type of replay will record +2. `onErrorSampleRate` - The sample rate for replays that are recorded when an error happens or when feedback is captured. This type of replay will record up to 30 seconds of events prior to the trigger and continue recording until the session ends. Sampling starts as soon as a session begins. The `sessionSampleRate` is then evaluated. If the session is sampled, replay recording will start immediately. If not, `onErrorSampleRate` will be evaluated. If the session is sampled at this point, the replay will be buffered and will only be uploaded to Sentry if an error occurs, your app calls `Sentry.captureFeedback()`, or the built-in feedback form opens. From 2ae1fdf747cf8371a8dc906bc623503e93836143 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Thu, 10 Sep 2026 10:59:54 +0200 Subject: [PATCH 6/7] Update SessionFeedbackForm link --- docs/platforms/dart/guides/flutter/session-replay/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/dart/guides/flutter/session-replay/index.mdx b/docs/platforms/dart/guides/flutter/session-replay/index.mdx index a22294015fc8a..1dfba46cba63b 100644 --- a/docs/platforms/dart/guides/flutter/session-replay/index.mdx +++ b/docs/platforms/dart/guides/flutter/session-replay/index.mdx @@ -61,7 +61,7 @@ The session will be terminated if the application has spent in the background mo ### Buffered Replays for Errors and User Feedback -If you prefer not to record an entire session, you can elect to capture a replay only when an error occurs or when your app captures feedback. In this case, the integration will buffer up to 30 seconds worth of events prior to the trigger. It will continue to record the session, following the rules above regarding session life and activity. For the built-in `SentryFeedbackForm`, the buffer is sent when the form opens, so the replay shows what happened before the user started entering feedback. Read the [sampling](#sampling) section for configuration options. +If you prefer not to record an entire session, you can elect to capture a replay only when an error occurs or when your app captures feedback. In this case, the integration will buffer up to 30 seconds worth of events prior to the trigger. It will continue to record the session, following the rules above regarding session life and activity. For the built-in SentryFeedbackForm, the buffer is sent when the form opens, so the replay shows what happened before the user started entering feedback. Read the [sampling](#sampling) section for configuration options. ## Sampling From 244d0e67c3b4f6de45c4bae7826a84331c0e9394 Mon Sep 17 00:00:00 2001 From: "sentry-junior[bot]" <264270552+sentry-junior[bot]@users.noreply.github.com> Date: Thu, 10 Sep 2026 09:04:29 +0000 Subject: [PATCH 7/7] docs(flutter): Clarify feedback-replay note references pre-9.21.0 naming --- docs/platforms/dart/guides/flutter/user-feedback/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx index 2a8f5ccc66082..8aa55f1fb93d0 100644 --- a/docs/platforms/dart/guides/flutter/user-feedback/index.mdx +++ b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx @@ -76,7 +76,7 @@ Future main() async { ### Session Replay -The `SentryFeedbackForm` works with Session Replay on iOS and Android in Sentry Flutter SDK `9.0.0` and later. With `onErrorSampleRate` set, the SDK buffers up to 30 seconds of the user's session and sends it when the form opens or when your app calls `Sentry.captureFeedback()`. This way, the replay shows what led the user to report the problem instead of only their interactions with the form. +The `SentryFeedbackForm` works with Session Replay on iOS and Android in Sentry Flutter SDK `9.0.0` and later. (Recall that this class was named `SentryFeedbackWidget` before `9.21.0`.) With `onErrorSampleRate` set, the SDK buffers up to 30 seconds of the user's session and sends it when the form opens or when your app calls `Sentry.captureFeedback()`. This way, the replay shows what led the user to report the problem instead of only their interactions with the form. ### Customization