Silent failure in your core action
Every product has one action that matters more than the rest: checkout, publish, send, or deploy. When it fails loudly, you hear about it. When it fails quietly, nobody sees an error and nobody files a ticket. This scout watches your most important flow and catches the failures nobody reports.
What the scout looks at
The scout looks for patterns like Fig. 1: you deployed at 14:02. People are still trying to publish, but fewer are finishing. No error page rendered and no alert fired. If both lines had dropped, that's a traffic change – not a break.
~1,240/day vanish here – no error, no alert
Started publishing · ~4,000/dayFinished · 92% → 61%
The report in your inbox
When your product emits signals that indicate your core action is failing, a scout opens a report. Fig. 2 breaks the card down part by part. Click Review and the report opens Fig. 3 with the full evidence, the raw signals, and options to take action. Yours would look like this one, but name your events, your deploys, and your users.
Since the 14:02 deploy, publish attempts are flat at ~4,000/day but the completion rate fell from 92% to 61%. The drop is uniform across source, device, and geo, so it isn't a traffic-mix change, and the publish_completed event is still firing normally elsewhere.
Error Tracking shows a new handled timeout on the publish path, caught by the retry wrapper and never rethrown – so no error page rendered and no alert fired. Session Replay matches: users click Publish, watch the spinner, and leave after ~8 seconds.
~1,240 publishes/day failing silently
Suggested fix: Surface the failure to the user instead of retrying silently. The timeout itself is the root cause and a separate follow-up – this PR is about making it visible.
The pull request you merge
When you're ready to open a pull request, the agent does it for you, attaching the evidence along the way. You review and merge it like any other – nothing merges without you.
Reports are free. Pull requests are $15 each, with your first three a month free. See self-driving Pricing.
The scout itself
Scouts are the heart of the self-driving system – they're instructions an agent follows on a schedule – Fig. 4 is the actual file for this guide's custom scout.
It reads more than one signal source, so the report can name a likely cause, not just a number that moved.
How many people start your core action and how many finish, compared with the last two weeks.
The failures that show up as errors – including the ones your code catches, so the user never sees them.
The failures that never become errors – recordings of people who started, got stuck, and gave up.
Your deploys, so a drop can be matched to the change that caused it instead of just a time of day.
The schedule it runs on
This custom scout runs daily by default. You can choose to run it every 30 minutes up to once a day. It only writes when something is wrong, so most days it's silent.
Add this to your scout troop
This is how the scout appears in PostHog once it's running – a scheduled agent that files a report when it finds something.
Preview
- RequiredA core action with a start and finish event, named explicitly when you add the scout – it can't guess which flow is the whole point of your product
- RequiredError Tracking instrumented, including the paths where exceptions are caught
- RecommendedYour codebase connected via GitHub, to correlate a break against deploys
- RecommendedSession Replay, for failures that never reach your server at all
- OptionalIntermediate events inside the flow, if you have them – they're what turns "it broke" into "it broke at the payment step"
Not set up yet? One command installs PostHog, connects GitHub, and turns on a default troop of scouts. That troop doesn't include this one – add it above once you're set up.
npx @posthog/wizard self-driving