Session replay

View PostHog session replays on iPhone

Open Activity, switch to Replays, load recent recordings, and search by person, start URL, or recording ID. The app requests replay data from PostHog and renders supported snapshot formats locally on the device.

Last reviewed

View PostHog session replays on iPhone workflow shown in PostHog Pocket Dashboard on iPhone

Direct answer

Open Activity, switch to Replays, load recent recordings, and search by person, start URL, or recording ID. The app requests replay data from PostHog and renders supported snapshot formats locally on the device.

Session replay is most useful when it answers a focused question: what happened before an error, did a tap register, or where did a user stop? On a phone, begin with the recording metadata and search filters instead of scrubbing every session in the list.

PostHog Pocket Dashboard supports recent recording lists, metadata, and local playback paths for native screenshot frames and web rrweb events. A recording may still lack the snapshots required for visual playback, in which case the app reports why rather than inventing frames.

Before you start

  • Session replay is enabled and recordings exist in the selected PostHog project.
  • A personal API key with read access to session recordings and their snapshots.
  • Enough network bandwidth to load recording metadata and snapshot chunks.
  • A specific person, URL, recording ID, or incident window to investigate.

Step-by-step instructions

  1. Open Activity and choose Replays

    Activity separates the live event feed from session replays. Switch to Replays so event filters do not get confused with recording search.

  2. Choose a recent-recording limit

    Start with a small list. Increase the count only when the incident falls outside the first result set.

  3. Search the metadata

    Filter by person/distinct ID, start URL, or recording ID. This search is designed to narrow the loaded recording list before opening large snapshot data.

  4. Inspect duration and error context

    Review the recording row and metadata for duration, active time, click count, keypress count, and console errors. These signals help decide whether visual playback is worth loading.

  5. Load and control playback

    Open a recording, load its playback, then use play/pause and the timeline controls. Web replay events are rendered locally with the bundled rrweb runtime; supported native replays use returned visual frames and pointer events.

What happens when playback loads

01

The app fetches detail and snapshot sources

It requests recording detail plus snapshot information from the selected PostHog project and environment endpoints.

02

The parser identifies the replay format

Screenshot frames and pointer events follow the native path; rrweb snapshot events follow the web renderer path.

03

The device renders the replay

Playback is constructed locally. The app shows a specific unavailable state when PostHog did not return a full snapshot or usable visual frames.

Options and limitations

  • A recording without an initial full web snapshot cannot be reconstructed visually.
  • Some recordings contain metadata but no screenshot frames or supported replay events.
  • The mobile app does not add tags, share recordings, or mutate replay data in PostHog.
  • Large recordings can take longer to load and should be narrowed by metadata first.

Common mistakes

Opening recordings without a question

Start with a person, URL, error, or time window. Random playback consumes time and rarely produces a decision.

Assuming metadata means visuals exist

The list can load even when a recording lacks the full snapshot required for playback.

Searching the event feed

Live Activity and Replays are separate panes. Switch to Replays before searching for recording IDs or start URLs.

Troubleshooting

No replays are returned

Confirm session replay is enabled in the project, widen the recent-recording count, and verify the key has recording read access.

Visual replay is unavailable

Read the on-screen reason. A missing full snapshot or missing visual frames is a property of the returned recording data, not something the app can reconstruct safely.

Playback does not fit the screen

Rotate or reopen the recording and confirm the latest app build. The player scales the recorded viewport to fit the available mobile container.

Related questions

Are replay snapshots uploaded to another service?

No app-owned replay backend is implemented. The app fetches snapshot data from the selected PostHog host and renders supported formats locally.

Can every PostHog replay play on iPhone?

No. Playback depends on the snapshot data PostHog returns. Missing full snapshots or unsupported visual data can make a recording unavailable.

Primary references

Product behavior above is based on the app source. These official PostHog references cover the underlying PostHog capability: