Troubleshooting
Troubleshooting issues with Session Replay
Why are parts of my replay not masked?
Text fields, input fields, images, video players, and webviews are all masked by default. Local assets, such as colors or vector drawables, aren't masked because the likelihood of these assets containing PII is low. If you encounter a view or component that should be masked by default, consider opening a GitHub issue.
Does Session Replay work with Jetpack Compose?
Yes, by default, text, input field, and image composables should be masked. Masking within embedded Android views (AndroidView) in Compose isn't currently supported. If you encounter composables that aren't masked but should be, consider opening a GitHub issue.
What's the lowest version of Android supported?
Recording only happens on Android 8 (API level 26) or newer. For devices running an older version, SDK features other than recording work normally.
Why is my issue missing a replay?
An issue may be missing a replay because the user's device was offline while sessionSampleRate was specified, your project/organization was rate-limited, or (in rare cases) the device failed to capture the replay video.
Why can't I see the full HTTP request body or all the headers?
By default, Replay will capture basic information about all outgoing HTTP requests in your application. This includes the URL, request and response body size, method, and status code. The intention is to limit the chance of collecting private data. You can configure the SDK to capture bodies and additional headers.
Another reason you might not see the body is that network details are only captured for OkHttp requests. If you've configured networkDetailAllowUrls and don't see request/response bodies or headers in your replays, verify that the request was made by the OkHttp stack.
OkHttp body and header extraction relies on SentryOkHttpInterceptor to instrument HTTP requests. The Sentry gradle plugin automatically adds this, so it works out of the box. If you're not using the plugin, add the interceptor manually:
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new SentryOkHttpInterceptor())
.build();
Also consider if the format is supported. We only capture text-based bodies, including JSON, XML, FormData, and similar data types. Any captured body will be truncated to 150k bytes. Bodies of byte, file, or media types are not captured.
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").