Session replays

Some parts of the application are blank or not visible in the player

Mobile Session Replay only supports native frameworks. Within these frameworks, there may be certain components or screens missing, such as:

  • SwiftUI is supported through an experimental feature. If this experimental support is not enabled, SwiftUI screens may appear blank or incomplete.
  • Certain system elements, such as actionBar in Android, progress bars, and spinners
  • Rich system contents, such as video players, music player, and map widgets
  • Views that use direct canvas drawing
  • Advanced text styling

Images do not render properly

Depending on the SDK configuration of Mobile Session Replay, images may not always be displayed.

Image visibility depends on your SDK privacy configuration:

  • On iOS, if maskNonBundledOnly is enabled, only bundled images with UIKit and images up to 100x100 pts on SwiftUI are captured.
  • On Android, if mask_large_only is used, only images up to 100x100dp are captured.

All other images are replaced by a “Content Image” placeholder in the UI.

Learn more about [image privacy settings][1].

Images follow a separate processing pipeline, which may introduce a small delay between uploading a replay and the image being available for rendering in the web player. In this case, wait a few minutes and then reload the replay.

On iOS, vector images are not supported in Session Replay and appear as “Unsupported image type” placeholders in the replay. To work around this, disable the “Preserve Vector Data” option in your asset catalog so that Xcode rasterizes the images, allowing them to be captured correctly. SF Symbols are also not supported.

The session replay rendering looks does not exactly mirror my application

Mobile Session Replay’s approach combines performance with usability. To achieve this, it’s not a pixel-perfect recreation of your app, but instead it takes a hybrid approach to the visual: it displays a scaffold of the screen that can later be enriched with styling and contextual images.

For sessions that are very short, I see a replay attached, but I’m unable to view the replay

When sessions are 1 nanosecond long, Datadog is unable to process the record, so there is no replay attached.

Data security

Before data is uploaded to Datadog, it is stored in cleartext in your application’s cache directory. Upon starting the SDK, a tracking consent value needs to be set to one of the following:

  • If the value is not granted, then no data is ever written on disk.
  • If the value is pending, the data is written in a temporary folder which cannot be uploaded to Datadog.
  • If the value is granted, data is written in an “upload” folder, which is processed in the background, and eventually uploaded to Datadog.

At any time during the lifetime of the host app, it’s possible to change the tracking consent. When the consent changes from pending to granted, the data in the temporary folder is moved to the “upload” folder.

Further reading

[1]: /real_user_monitoring/session_replay/mobile/privacy_options/?platform=ios&tab=as-wrappers#image-masking