Generated banner for Finding Replay For Issue
Generated logo for Finding Replay For Issue

Finding Replay For Issue

PostHogOfficialPublished by PostHog

  • Skill
  • Workflow
  • Data and AI
  • MIT
  • No issues found

From the author

Finds the most informative session recording linked to an error tracking issue. Use when a user has an error tracking issue ID and wants to watch a replay showing what the user was doing when the error occurred. Ranks linked sessions by recency, activity score, and journey completeness, then summarizes the pre-error context. Replaces blind session picking from potentially hundreds of linked recordings.
— the description by PostHog

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill automates the process of finding meaningful session replays for error tracking issues. Instead of manually reviewing hundreds of potentially irrelevant recordings, the agent queries exception events, filters out noise like short or idle sessions, and ranks candidates based on duration, activity levels, and recency. It provides the user with the most informative recording and can optionally trigger AI-based summarization to explain the context leading up to the error.

What it does

  • Fetches error tracking issue details including fingerprints and event data.
  • Queries exception events to identify session IDs associated with a specific error.
  • Filters candidate recordings to exclude fragments or excessively long sessions.
  • Ranks sessions based on activity scores, duration, and recency.
  • Retrieves full recording details and provides pre-error context.
  • Integrates with Replay Vision to generate narrative summaries of session recordings.

When to use it

  • When you need to find a specific session recording that demonstrates how an error occurred.
  • When an error tracking issue has a large number of linked sessions and you need to identify the most useful ones.
  • When you want to provide a summary of user actions leading up to an application exception.
  • When you need to determine if an error causes an immediate crash based on session duration.

Advantages

  • Reduces manual effort by automating the search and ranking of relevant session replays.
  • Improves diagnostic accuracy by prioritizing sessions with higher user activity.
  • Provides structured pre-error context to help developers understand the user journey.
  • Supports AI-driven summarization for faster issue analysis.

Usage examples

“Find the best session recording for error issue ID 12345.”
The agent retrieves the issue details, queries linked sessions, ranks them by activity and duration, and presents the most relevant recording with a summary of the user's pre-error actions.
“Summarize what happened in the most relevant recording for this error.”
The agent identifies the top-ranked session and uses a summarizer scanner to generate a narrative report of the user's intent, friction points, and actions before the error.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/posthog/finding-replay-for-issue/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip finding-replay-for-issue.zip -d .agents/skills

Documentation by PostHog

Finding the best replay for an error tracking issue

When a user says "show me a replay for this error" or "find a recording for issue X", the goal isn't just any linked session — it's the one that best shows what led to the error. Popular issues can have hundreds of linked sessions, and most are crash-only fragments or duplicate occurrences. This skill picks the most useful one.

Available tools

ToolPurpose
posthog:query-error-tracking-issueGet issue details (fingerprint, status, volume)
posthog:execute-sqlQuery exception events to find linked sessions
posthog:query-session-recordings-listFetch recording metadata for candidate sessions
posthog:session-recording-getGet full details for the selected recording
posthog:vision-observations-listCheck for an existing Replay Vision AI summary
posthog:vision-scanners-listFind summarizer scanners (scanner_type=summarizer)
posthog:vision-scanners-scan-sessionRun a summarizer scanner on the recording (optional, slow)

Workflow

Step 1 — Get the issue details

Fetch the error tracking issue to understand what you're looking for:

posthog:query-error-tracking-issue
{
  "issueId": "<issue_id>"
}

Note the issue's fingerprint, name, and description — you'll need the fingerprint to find linked sessions.

Step 2 — Find sessions with this error

Query exception events to get session IDs where this error occurred. Order by recency and include basic context:

posthog:execute-sql
SELECT
    $session_id AS session_id,
    count() AS occurrences,
    min(timestamp) AS first_seen,
    max(timestamp) AS last_seen,
    any(properties.$current_url) AS url
FROM events
WHERE event = '$exception'
    AND properties.$exception_fingerprint = '<fingerprint>'
    AND $session_id IS NOT NULL
    AND timestamp > now() - INTERVAL 30 DAY
GROUP BY session_id
ORDER BY last_seen DESC
LIMIT 20

This gives you up to 20 candidate sessions. More candidates means better selection.

Step 3 — Rank the candidates

Fetch recording metadata for the candidate sessions to rank them:

posthog:query-session-recordings-list
{
  "session_ids": ["<id1>", "<id2>", "<id3>", ...],
  "date_from": "-30d"
}

Pick the best recording by filtering out bad candidates, then ranking what's left:

Filter out:

  • Sessions under 10 seconds (crash-only fragments, no pre-error context)

  • Sessions over 1 hour (too much data to load, error is a needle in a haystack)

Rank by:

  1. Sweet-spot duration — 2-15 minutes is ideal. Long enough to show the user's journey before the error, short enough to be practical to watch or summarize.

  2. Active time ratio — compare active_seconds to recording_duration. A 20-minute recording with 10 seconds of activity is mostly idle tabs — the user walked away. Prefer sessions where active_seconds / recording_duration is above 0.3 (30%).

  3. Activity score — higher activity_score means the user was actively interacting, not idle. More interesting to watch.

  4. Recency — more recent sessions reflect current app behavior.

Step 4 — Present the finding

Fetch full details for the selected recording:

posthog:session-recording-get
{
  "id": "<best_recording_id>"
}

Present to the user:

  • The recording with a link to watch it

  • Why this one — briefly explain the selection ("longest session with the error, user was browsing 3 pages before hitting it")

  • Pre-error context — what pages the user visited and key actions before the exception, derived from the events query in step 2 (the url and first_seen columns)

  • Error frequency — how many times the error occurred in this session

Optional: AI summary via Replay Vision

If the user wants a narrative summary without watching, use Replay Vision — "check-then-scan", since a scanner can only observe a given session once.

  1. Check for an existing summary on the selected recording:

    posthog:vision-observations-list
    {
      "session_id": "<best_recording_id>"
    }

    If an observation has scanner_snapshot.scanner_type summarizer and status succeeded, read scanner_result.model_output (title, summary, intent, outcome, friction_points, keywords) — done.

  2. Find a summarizer scanner if none exists:

    posthog:vision-scanners-list
    {
      "scanner_type": "summarizer"
    }

    One → use it. More than one → ask the user which (show name + prompt). None → offer to create one via the creating-replay-vision-scanners skill.

  3. Scan the recording with the chosen scanner (async, several minutes):

    posthog:vision-scanners-scan-session
    {
      "id": "<scanner_id>",
      "session_id": "<best_recording_id>"
    }
  4. Retrieve by polling vision-observations-list until succeeded.

Tips

  • If all candidate sessions are very short (<10 seconds), the error likely crashes the page immediately. Note this — it's useful context even without a long replay.

  • When the issue has very few linked sessions (<3), skip the ranking and just present what's available with a note about the small sample.

  • If $session_id is null on many exception events, session replay may not be enabled for the affected users. Mention this as a possible gap.

  • Replay Vision has no per-call focus parameter — a summarizer scanner's focus comes from its own prompt. For error-focused summaries, prefer (or create) a summarizer scanner whose prompt targets error/exception context rather than the whole session.

  • investigating-error-issue — the quantitative side: volume, breakdowns, and stack traces for the same issue

  • investigating-replay — deep-dive one of the linked sessions

  • diagnosing-missing-recordings — when exception events have no $session_id or the linked recordings are gone

Files

LICENSE

MIT License

Copyright (c) 2025

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
PostHog
Publisher
PostHog (Official)
Source
PostHog/skills · skills/omnibus/finding-replay-for-issue · commit a5d30e7
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by PostHog.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download finding-replay-for-issue.zip