Skip to content

trackDatadogEvents disables web session recordings - bridge mode and Session Replay are mutually exclusive #1010

@DonikaV

Description

@DonikaV

Describe the bug

First off, big thanks for the Flutter SDK work - the Flutter session replay has been really useful for our team.

We have a native Flutter app with an embedded WebView that loads a web app with the Datadog Browser SDK. We want to capture web session recordings and link them to the native session. The problem: once we call trackDatadogEvents, the Browser SDK switches to bridge mode and the web session becomes a placeholder (session_id = 00000000-aaaa-...), so DD_RUM.getSessionReplayLink() always returns null.

As a workaround we tried calling getSessionReplayLink() from onPageFinished and storing the result as a custom attribute (web_session_replay_link) on the native session - but with the bridge active, it never returns anything useful. Without the bridge, it works, but then we lose event correlation entirely.

What we really want is to open one session in Datadog and see both native and web recordings in the same place - no switching between tabs, no manual correlation. Right now, we have to choose between event bridging and session recordings, which shouldn't be a tradeoff.

Reproduction steps

// 1. Init Datadog Flutter SDK with RUM + Session Replay
await DatadogSdk.instance.initialize(configuration, TrackingConsent.granted);

// 2. Create WebViewController and call trackDatadogEvents
final controller = WebViewController();
controller.trackDatadogEvents(DatadogSdk.instance, ['yourdomain.com']);
controller.loadRequest(Uri.parse('https://yourdomain.com'));

// 3. After page loads, run from onPageFinished:
// DD_RUM.getSessionReplayLink() → always null

SDK logs

N/A — no errors thrown. getSessionReplayLink() silently returns null.

Expected behavior

When trackDatadogEvents is active, web session recordings should be forwarded through the bridge and merged into the native session replay — the same way RUM events are. Ideally, we'd open one session in Datadog and see a single continuous recording covering both native and WebView content, with no separate links, no extra tabs, no manual correlation needed.

Affected SDK versions

  • datadog_flutter_plugin: 3.2.0 - datadog_webview_tracking: git develop (targeting 3.1.0) - datadog_session_replay: 1.0.0-preview.11

Latest working SDK version

Unknown — the bridge and session replay link have never worked simultaneously.

Did you confirm if the latest SDK version fixes the bug?

No

Flutter Version

3.x (stable)

Setup Type

Hybrid setup - native Flutter app with an embedded WebView loading a web app that has the Datadog Browser SDK initialized.

Device Information

iOS (WKWebView) and Android (WebView). Reproducible on both platforms, on any device.

Other relevant information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions