# Silent failure in your core action – Self-driving pocket guide

[](/pocket-guides.md)Aa

[](/pocket-guides/self-driving/flag-debt.md)

# Silent failure in your core action – Self-driving pocket guide

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.

14:02 deploy

~1,240/day vanish here – no error, no alert

Started publishing · ~4,000/dayFinished · 92% → 61%

Fig. 1 – What the scout saw: Your deploy went out at 14:02. The orange gap is everyone who started and never finished.

## The report in your inbox

When your product emits [signals](/docs/self-driving/signals.md) that indicate your core action is failing, a [scout](/docs/self-driving/scouts.md) opens a [report](/docs/self-driving/reports.md). 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.

P11Publish completion rate down 31 points while attempts hold steady 2Completion rate fell 92% → 61% after the 14:02 deploy while attempts held steady – a handled timeout, retried silently3Scout · core action funnel4ReadyActionable52h ago

ArchiveReview6

Fig. 2 – Once surfaced, your inbox surfaces this report card. The card includes its claim and triage, with the evidence sitting inside the report itself.Hover over the figure to learn about each element.

P1Publish completion rate down 31 points while attempts hold steady 1ReadyActionableScout · core action funnel· 2h ago

ArchiveCreate PR2

Summary3

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.

4

Evidence4 sources5

Your product eventsHow many people start your core action and how many finish, compared with the last two weeks.

Error TrackingThe failures that show up as errors – including the ones your code catches, so the user never sees them.

Session ReplayThe failures that never become errors – recordings of people who started, got stuck, and gave up.

Your codebaseYour deploys, so a drop can be matched to the change that caused it instead of just a time of day.

Fig. 3 – The report opened. From here, you can review the evidence and open a pull request.Hover over the figure to learn about each element.

## 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](/docs/self-driving/pricing.md).

## 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.

signals-scout-silent-failure/SKILL.md

```markdown
# Silent failure in the core action
Watch one named flow for failures that never surface as errors.
The mechanism this is built around: **something caught the failure.** A retry wrapper, a
`try`/`catch` with a log line, a fallback that returns an empty result. The user sees a spinner
and then nothing, no error page renders, no alert fires, and the only trace is the completion
rate quietly dropping. That's what makes it silent, and it's what this scout looks for first.
Narrower than `signals-scout-anomaly-detection`, which builds a durable watchlist of the
insights a team actually looks at and scores each one against a seasonality-matched baseline.
This one watches a single flow you name, every run, whether or not anyone has built an insight
for it. If the core action is already on that scout's watchlist and you're hearing about breaks
in time, you don't need both.
Daily is the fleet default. For a flow where hours matter, set `run_interval_minutes` to 60 when
you create the scout – the tradeoff is that hourly buckets are noisier, so raise the volume
floor below to match.
## Discriminator
Emit a report when the **completion rate** – completions divided by attempts – breaks from its
trailing two-week norm for the same day of week. Write nothing when attempts and completions
moved together and the rate held: that's a traffic change, not breakage.
Attempts are the disqualifier check, not half the trigger. Watching two counts separately leaves
you stuck the moment both move a little; watching the rate doesn't.
### The bar
A starting point, to be tuned against what this flow's data actually does:
- a completion rate **≥10 points below** its trailing 14-day median for the same weekday, on a
  complete bucket, and
- **≥500 attempts** in that bucket.
The volume floor matters more than the threshold. A completion rate computed on 40 attempts is
noise, and a scout that fires on it is exactly the crying-wolf failure the discriminator is
meant to prevent. If the flow doesn't clear the floor, widen the bucket rather than lowering the
bar, and write what you chose to the scratchpad.
## Explore
1. **Confirm the instrumentation still works.** Before anything else: is the completion event
   still firing at all, and was it renamed, moved, or removed in the deploy window? A broken
   tracking call looks identical to a broken product – attempts flat, completions gone – and it
   is the most likely false positive for this scout. Check the event's total volume across all
   properties, not just within the flow. `signals-scout-observability-gaps` watches this kind of
   drift more broadly.
2. **Check whether the drop is uniform.** Did the completion rate fall across every segment, or
   only inside a new or shifted one? Steady attempts with a falling rate is also the shape of a
   traffic-composition change – a campaign bringing lower-intent users, a new geo, a bot wave.
   Nothing is broken in that case, and the rate framing alone won't catch it. Break down by
   source, device, geo, and new-vs-returning before going further.
3. **Find what was caught.** Look for new or spiking error-tracking issues on the same code
   path, weighting **handled** exceptions – the ones that never reached the user. A caught
   timeout, a retry that exhausted, a fallback that returned empty. This is the mechanism the
   whole scout is built around, so look here before looking anywhere else.
4. **Check the failures that never reached your server.** If Error Tracking is clean, the failure
   may not have made it out of the browser: a dropped request, an ad blocker or CSP rule
   blocking the call, the tab closing mid-request. Session Replay is the only thing that sees
   these – look for stalls, rage clicks, and abandonment at a consistent point in the flow.
5. **Locate it in the flow.** If intermediate events exist, find the step where the drop happens.
   Without them you can say the flow broke, but not where.
6. **Tie it to a deploy.** Where a deploy sits in the window, include the commit range.
7. Name the most likely cause in the report. A rate that moved with no cause attached is
   something the reader still has to go investigate themselves.
## Disqualifiers
- Attempts and completions moved together – the rate held.
- The completion event stopped firing entirely, or was renamed in the window. That's an
  instrumentation finding, not a product one, and it should say so.
- The rate fell only inside one new or shifted segment – that's a mix change, not breakage.
- The bucket is below the volume floor.
- The change is within normal weekday/weekend variance.
- A known, announced maintenance window covers the period.
```

Show full example

Fig. 4 – The scout itself – the file an agent follows on a schedule.

It reads more than one [signal source](/docs/self-driving/inbox/sources.md), so the report can name a likely cause, not just a number that moved.

-   [Your product events](/docs/product-analytics.md)

    How many people start your core action and how many finish, compared with the last two weeks.

-   [Error Tracking](/docs/error-tracking.md)

    The failures that show up as errors – including the ones your code catches, so the user never sees them.

-   [Session Replay](/docs/session-replay.md)

    The failures that never become errors – recordings of people who started, got stuck, and gave up.

-   [Your codebase](/docs/self-driving/context.md)

    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

signals-scout-silent-failureCustomDaily · writes findings to your inbox

-   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
-   Required[Error Tracking](/docs/error-tracking/installation.md) instrumented, including the paths where exceptions are caught
-   Recommended[Your codebase](/docs/self-driving/context.md) connected via GitHub, to correlate a break against deploys
-   Recommended[Session Replay](/docs/session-replay/installation.md), 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"

[Add this scout](https://app.posthog.com/inbox/config#createScout=eyJuYW1lIjoic2lnbmFscy1zY291dC1zaWxlbnQtZmFpbHVyZSIsImRlc2NyaXB0aW9uIjoiV2F0Y2hlcyB0aGUgY29tcGxldGlvbiByYXRlIG9mIG9uZSBuYW1lZCBjb3JlIGFjdGlvbiBmb3IgYnJlYWtzIGZyb20gaXRzIG93biBub3JtLCBhbmQgcmVwb3J0cyB0aGUgbGlrZWx5IGNhdXNlIOKAkyB3aXRoIHN3YWxsb3dlZCBleGNlcHRpb25zIGFzIHRoZSBmaXJzdCB0aGluZyBpdCBsb29rcyBmb3IuXG4iLCJib2R5IjoiIyBTaWxlbnQgZmFpbHVyZSBpbiB0aGUgY29yZSBhY3Rpb25cblxuV2F0Y2ggb25lIG5hbWVkIGZsb3cgZm9yIGZhaWx1cmVzIHRoYXQgbmV2ZXIgc3VyZmFjZSBhcyBlcnJvcnMuXG5cblRoZSBtZWNoYW5pc20gdGhpcyBpcyBidWlsdCBhcm91bmQ6ICoqc29tZXRoaW5nIGNhdWdodCB0aGUgZmFpbHVyZS4qKiBBIHJldHJ5IHdyYXBwZXIsIGFcbmB0cnlgL2BjYXRjaGAgd2l0aCBhIGxvZyBsaW5lLCBhIGZhbGxiYWNrIHRoYXQgcmV0dXJucyBhbiBlbXB0eSByZXN1bHQuIFRoZSB1c2VyIHNlZXMgYSBzcGlubmVyXG5hbmQgdGhlbiBub3RoaW5nLCBubyBlcnJvciBwYWdlIHJlbmRlcnMsIG5vIGFsZXJ0IGZpcmVzLCBhbmQgdGhlIG9ubHkgdHJhY2UgaXMgdGhlIGNvbXBsZXRpb25cbnJhdGUgcXVpZXRseSBkcm9wcGluZy4gVGhhdCdzIHdoYXQgbWFrZXMgaXQgc2lsZW50LCBhbmQgaXQncyB3aGF0IHRoaXMgc2NvdXQgbG9va3MgZm9yIGZpcnN0LlxuXG5OYXJyb3dlciB0aGFuIGBzaWduYWxzLXNjb3V0LWFub21hbHktZGV0ZWN0aW9uYCwgd2hpY2ggYnVpbGRzIGEgZHVyYWJsZSB3YXRjaGxpc3Qgb2YgdGhlXG5pbnNpZ2h0cyBhIHRlYW0gYWN0dWFsbHkgbG9va3MgYXQgYW5kIHNjb3JlcyBlYWNoIG9uZSBhZ2FpbnN0IGEgc2Vhc29uYWxpdHktbWF0Y2hlZCBiYXNlbGluZS5cblRoaXMgb25lIHdhdGNoZXMgYSBzaW5nbGUgZmxvdyB5b3UgbmFtZSwgZXZlcnkgcnVuLCB3aGV0aGVyIG9yIG5vdCBhbnlvbmUgaGFzIGJ1aWx0IGFuIGluc2lnaHRcbmZvciBpdC4gSWYgdGhlIGNvcmUgYWN0aW9uIGlzIGFscmVhZHkgb24gdGhhdCBzY291dCdzIHdhdGNobGlzdCBhbmQgeW91J3JlIGhlYXJpbmcgYWJvdXQgYnJlYWtzXG5pbiB0aW1lLCB5b3UgZG9uJ3QgbmVlZCBib3RoLlxuXG5EYWlseSBpcyB0aGUgZmxlZXQgZGVmYXVsdC4gRm9yIGEgZmxvdyB3aGVyZSBob3VycyBtYXR0ZXIsIHNldCBgcnVuX2ludGVydmFsX21pbnV0ZXNgIHRvIDYwIHdoZW5cbnlvdSBjcmVhdGUgdGhlIHNjb3V0IOKAkyB0aGUgdHJhZGVvZmYgaXMgdGhhdCBob3VybHkgYnVja2V0cyBhcmUgbm9pc2llciwgc28gcmFpc2UgdGhlIHZvbHVtZVxuZmxvb3IgYmVsb3cgdG8gbWF0Y2guXG5cbiMjIERpc2NyaW1pbmF0b3JcblxuRW1pdCBhIHJlcG9ydCB3aGVuIHRoZSAqKmNvbXBsZXRpb24gcmF0ZSoqIOKAkyBjb21wbGV0aW9ucyBkaXZpZGVkIGJ5IGF0dGVtcHRzIOKAkyBicmVha3MgZnJvbSBpdHNcbnRyYWlsaW5nIHR3by13ZWVrIG5vcm0gZm9yIHRoZSBzYW1lIGRheSBvZiB3ZWVrLiBXcml0ZSBub3RoaW5nIHdoZW4gYXR0ZW1wdHMgYW5kIGNvbXBsZXRpb25zXG5tb3ZlZCB0b2dldGhlciBhbmQgdGhlIHJhdGUgaGVsZDogdGhhdCdzIGEgdHJhZmZpYyBjaGFuZ2UsIG5vdCBicmVha2FnZS5cblxuQXR0ZW1wdHMgYXJlIHRoZSBkaXNxdWFsaWZpZXIgY2hlY2ssIG5vdCBoYWxmIHRoZSB0cmlnZ2VyLiBXYXRjaGluZyB0d28gY291bnRzIHNlcGFyYXRlbHkgbGVhdmVzXG55b3Ugc3R1Y2sgdGhlIG1vbWVudCBib3RoIG1vdmUgYSBsaXR0bGU7IHdhdGNoaW5nIHRoZSByYXRlIGRvZXNuJ3QuXG5cbiMjIyBUaGUgYmFyXG5cbkEgc3RhcnRpbmcgcG9pbnQsIHRvIGJlIHR1bmVkIGFnYWluc3Qgd2hhdCB0aGlzIGZsb3cncyBkYXRhIGFjdHVhbGx5IGRvZXM6XG5cbi0gYSBjb21wbGV0aW9uIHJhdGUgKiriiaUxMCBwb2ludHMgYmVsb3cqKiBpdHMgdHJhaWxpbmcgMTQtZGF5IG1lZGlhbiBmb3IgdGhlIHNhbWUgd2Vla2RheSwgb24gYVxuICBjb21wbGV0ZSBidWNrZXQsIGFuZFxuLSAqKuKJpTUwMCBhdHRlbXB0cyoqIGluIHRoYXQgYnVja2V0LlxuXG5UaGUgdm9sdW1lIGZsb29yIG1hdHRlcnMgbW9yZSB0aGFuIHRoZSB0aHJlc2hvbGQuIEEgY29tcGxldGlvbiByYXRlIGNvbXB1dGVkIG9uIDQwIGF0dGVtcHRzIGlzXG5ub2lzZSwgYW5kIGEgc2NvdXQgdGhhdCBmaXJlcyBvbiBpdCBpcyBleGFjdGx5IHRoZSBjcnlpbmctd29sZiBmYWlsdXJlIHRoZSBkaXNjcmltaW5hdG9yIGlzXG5tZWFudCB0byBwcmV2ZW50LiBJZiB0aGUgZmxvdyBkb2Vzbid0IGNsZWFyIHRoZSBmbG9vciwgd2lkZW4gdGhlIGJ1Y2tldCByYXRoZXIgdGhhbiBsb3dlcmluZyB0aGVcbmJhciwgYW5kIHdyaXRlIHdoYXQgeW91IGNob3NlIHRvIHRoZSBzY3JhdGNocGFkLlxuXG4jIyBFeHBsb3JlXG5cbjEuICoqQ29uZmlybSB0aGUgaW5zdHJ1bWVudGF0aW9uIHN0aWxsIHdvcmtzLioqIEJlZm9yZSBhbnl0aGluZyBlbHNlOiBpcyB0aGUgY29tcGxldGlvbiBldmVudFxuICAgc3RpbGwgZmlyaW5nIGF0IGFsbCwgYW5kIHdhcyBpdCByZW5hbWVkLCBtb3ZlZCwgb3IgcmVtb3ZlZCBpbiB0aGUgZGVwbG95IHdpbmRvdz8gQSBicm9rZW5cbiAgIHRyYWNraW5nIGNhbGwgbG9va3MgaWRlbnRpY2FsIHRvIGEgYnJva2VuIHByb2R1Y3Qg4oCTIGF0dGVtcHRzIGZsYXQsIGNvbXBsZXRpb25zIGdvbmUg4oCTIGFuZCBpdFxuICAgaXMgdGhlIG1vc3QgbGlrZWx5IGZhbHNlIHBvc2l0aXZlIGZvciB0aGlzIHNjb3V0LiBDaGVjayB0aGUgZXZlbnQncyB0b3RhbCB2b2x1bWUgYWNyb3NzIGFsbFxuICAgcHJvcGVydGllcywgbm90IGp1c3Qgd2l0aGluIHRoZSBmbG93LiBgc2lnbmFscy1zY291dC1vYnNlcnZhYmlsaXR5LWdhcHNgIHdhdGNoZXMgdGhpcyBraW5kIG9mXG4gICBkcmlmdCBtb3JlIGJyb2FkbHkuXG4yLiAqKkNoZWNrIHdoZXRoZXIgdGhlIGRyb3AgaXMgdW5pZm9ybS4qKiBEaWQgdGhlIGNvbXBsZXRpb24gcmF0ZSBmYWxsIGFjcm9zcyBldmVyeSBzZWdtZW50LCBvclxuICAgb25seSBpbnNpZGUgYSBuZXcgb3Igc2hpZnRlZCBvbmU_IFN0ZWFkeSBhdHRlbXB0cyB3aXRoIGEgZmFsbGluZyByYXRlIGlzIGFsc28gdGhlIHNoYXBlIG9mIGFcbiAgIHRyYWZmaWMtY29tcG9zaXRpb24gY2hhbmdlIOKAkyBhIGNhbXBhaWduIGJyaW5naW5nIGxvd2VyLWludGVudCB1c2VycywgYSBuZXcgZ2VvLCBhIGJvdCB3YXZlLlxuICAgTm90aGluZyBpcyBicm9rZW4gaW4gdGhhdCBjYXNlLCBhbmQgdGhlIHJhdGUgZnJhbWluZyBhbG9uZSB3b24ndCBjYXRjaCBpdC4gQnJlYWsgZG93biBieVxuICAgc291cmNlLCBkZXZpY2UsIGdlbywgYW5kIG5ldy12cy1yZXR1cm5pbmcgYmVmb3JlIGdvaW5nIGZ1cnRoZXIuXG4zLiAqKkZpbmQgd2hhdCB3YXMgY2F1Z2h0LioqIExvb2sgZm9yIG5ldyBvciBzcGlraW5nIGVycm9yLXRyYWNraW5nIGlzc3VlcyBvbiB0aGUgc2FtZSBjb2RlXG4gICBwYXRoLCB3ZWlnaHRpbmcgKipoYW5kbGVkKiogZXhjZXB0aW9ucyDigJMgdGhlIG9uZXMgdGhhdCBuZXZlciByZWFjaGVkIHRoZSB1c2VyLiBBIGNhdWdodFxuICAgdGltZW91dCwgYSByZXRyeSB0aGF0IGV4aGF1c3RlZCwgYSBmYWxsYmFjayB0aGF0IHJldHVybmVkIGVtcHR5LiBUaGlzIGlzIHRoZSBtZWNoYW5pc20gdGhlXG4gICB3aG9sZSBzY291dCBpcyBidWlsdCBhcm91bmQsIHNvIGxvb2sgaGVyZSBiZWZvcmUgbG9va2luZyBhbnl3aGVyZSBlbHNlLlxuNC4gKipDaGVjayB0aGUgZmFpbHVyZXMgdGhhdCBuZXZlciByZWFjaGVkIHlvdXIgc2VydmVyLioqIElmIEVycm9yIFRyYWNraW5nIGlzIGNsZWFuLCB0aGUgZmFpbHVyZVxuICAgbWF5IG5vdCBoYXZlIG1hZGUgaXQgb3V0IG9mIHRoZSBicm93c2VyOiBhIGRyb3BwZWQgcmVxdWVzdCwgYW4gYWQgYmxvY2tlciBvciBDU1AgcnVsZVxuICAgYmxvY2tpbmcgdGhlIGNhbGwsIHRoZSB0YWIgY2xvc2luZyBtaWQtcmVxdWVzdC4gU2Vzc2lvbiBSZXBsYXkgaXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBzZWVzXG4gICB0aGVzZSDigJMgbG9vayBmb3Igc3RhbGxzLCByYWdlIGNsaWNrcywgYW5kIGFiYW5kb25tZW50IGF0IGEgY29uc2lzdGVudCBwb2ludCBpbiB0aGUgZmxvdy5cbjUuICoqTG9jYXRlIGl0IGluIHRoZSBmbG93LioqIElmIGludGVybWVkaWF0ZSBldmVudHMgZXhpc3QsIGZpbmQgdGhlIHN0ZXAgd2hlcmUgdGhlIGRyb3AgaGFwcGVucy5cbiAgIFdpdGhvdXQgdGhlbSB5b3UgY2FuIHNheSB0aGUgZmxvdyBicm9rZSwgYnV0IG5vdCB3aGVyZS5cbjYuICoqVGllIGl0IHRvIGEgZGVwbG95LioqIFdoZXJlIGEgZGVwbG95IHNpdHMgaW4gdGhlIHdpbmRvdywgaW5jbHVkZSB0aGUgY29tbWl0IHJhbmdlLlxuNy4gTmFtZSB0aGUgbW9zdCBsaWtlbHkgY2F1c2UgaW4gdGhlIHJlcG9ydC4gQSByYXRlIHRoYXQgbW92ZWQgd2l0aCBubyBjYXVzZSBhdHRhY2hlZCBpc1xuICAgc29tZXRoaW5nIHRoZSByZWFkZXIgc3RpbGwgaGFzIHRvIGdvIGludmVzdGlnYXRlIHRoZW1zZWx2ZXMuXG5cbiMjIERpc3F1YWxpZmllcnNcblxuLSBBdHRlbXB0cyBhbmQgY29tcGxldGlvbnMgbW92ZWQgdG9nZXRoZXIg4oCTIHRoZSByYXRlIGhlbGQuXG4tIFRoZSBjb21wbGV0aW9uIGV2ZW50IHN0b3BwZWQgZmlyaW5nIGVudGlyZWx5LCBvciB3YXMgcmVuYW1lZCBpbiB0aGUgd2luZG93LiBUaGF0J3MgYW5cbiAgaW5zdHJ1bWVudGF0aW9uIGZpbmRpbmcsIG5vdCBhIHByb2R1Y3Qgb25lLCBhbmQgaXQgc2hvdWxkIHNheSBzby5cbi0gVGhlIHJhdGUgZmVsbCBvbmx5IGluc2lkZSBvbmUgbmV3IG9yIHNoaWZ0ZWQgc2VnbWVudCDigJMgdGhhdCdzIGEgbWl4IGNoYW5nZSwgbm90IGJyZWFrYWdlLlxuLSBUaGUgYnVja2V0IGlzIGJlbG93IHRoZSB2b2x1bWUgZmxvb3IuXG4tIFRoZSBjaGFuZ2UgaXMgd2l0aGluIG5vcm1hbCB3ZWVrZGF5L3dlZWtlbmQgdmFyaWFuY2UuXG4tIEEga25vd24sIGFubm91bmNlZCBtYWludGVuYW5jZSB3aW5kb3cgY292ZXJzIHRoZSBwZXJpb2QuIn0)Opens PostHog with it prefilled. Review it, then hit Create.

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
```

[‹ Feature flag debt](/pocket-guides/self-driving/flag-debt.md)[All guides](/pocket-guides.md)p. 4 of 4

signals-scout-silent-failure[Add this scout](https://app.posthog.com/inbox/config#createScout=eyJuYW1lIjoic2lnbmFscy1zY291dC1zaWxlbnQtZmFpbHVyZSIsImRlc2NyaXB0aW9uIjoiV2F0Y2hlcyB0aGUgY29tcGxldGlvbiByYXRlIG9mIG9uZSBuYW1lZCBjb3JlIGFjdGlvbiBmb3IgYnJlYWtzIGZyb20gaXRzIG93biBub3JtLCBhbmQgcmVwb3J0cyB0aGUgbGlrZWx5IGNhdXNlIOKAkyB3aXRoIHN3YWxsb3dlZCBleGNlcHRpb25zIGFzIHRoZSBmaXJzdCB0aGluZyBpdCBsb29rcyBmb3IuXG4iLCJib2R5IjoiIyBTaWxlbnQgZmFpbHVyZSBpbiB0aGUgY29yZSBhY3Rpb25cblxuV2F0Y2ggb25lIG5hbWVkIGZsb3cgZm9yIGZhaWx1cmVzIHRoYXQgbmV2ZXIgc3VyZmFjZSBhcyBlcnJvcnMuXG5cblRoZSBtZWNoYW5pc20gdGhpcyBpcyBidWlsdCBhcm91bmQ6ICoqc29tZXRoaW5nIGNhdWdodCB0aGUgZmFpbHVyZS4qKiBBIHJldHJ5IHdyYXBwZXIsIGFcbmB0cnlgL2BjYXRjaGAgd2l0aCBhIGxvZyBsaW5lLCBhIGZhbGxiYWNrIHRoYXQgcmV0dXJucyBhbiBlbXB0eSByZXN1bHQuIFRoZSB1c2VyIHNlZXMgYSBzcGlubmVyXG5hbmQgdGhlbiBub3RoaW5nLCBubyBlcnJvciBwYWdlIHJlbmRlcnMsIG5vIGFsZXJ0IGZpcmVzLCBhbmQgdGhlIG9ubHkgdHJhY2UgaXMgdGhlIGNvbXBsZXRpb25cbnJhdGUgcXVpZXRseSBkcm9wcGluZy4gVGhhdCdzIHdoYXQgbWFrZXMgaXQgc2lsZW50LCBhbmQgaXQncyB3aGF0IHRoaXMgc2NvdXQgbG9va3MgZm9yIGZpcnN0LlxuXG5OYXJyb3dlciB0aGFuIGBzaWduYWxzLXNjb3V0LWFub21hbHktZGV0ZWN0aW9uYCwgd2hpY2ggYnVpbGRzIGEgZHVyYWJsZSB3YXRjaGxpc3Qgb2YgdGhlXG5pbnNpZ2h0cyBhIHRlYW0gYWN0dWFsbHkgbG9va3MgYXQgYW5kIHNjb3JlcyBlYWNoIG9uZSBhZ2FpbnN0IGEgc2Vhc29uYWxpdHktbWF0Y2hlZCBiYXNlbGluZS5cblRoaXMgb25lIHdhdGNoZXMgYSBzaW5nbGUgZmxvdyB5b3UgbmFtZSwgZXZlcnkgcnVuLCB3aGV0aGVyIG9yIG5vdCBhbnlvbmUgaGFzIGJ1aWx0IGFuIGluc2lnaHRcbmZvciBpdC4gSWYgdGhlIGNvcmUgYWN0aW9uIGlzIGFscmVhZHkgb24gdGhhdCBzY291dCdzIHdhdGNobGlzdCBhbmQgeW91J3JlIGhlYXJpbmcgYWJvdXQgYnJlYWtzXG5pbiB0aW1lLCB5b3UgZG9uJ3QgbmVlZCBib3RoLlxuXG5EYWlseSBpcyB0aGUgZmxlZXQgZGVmYXVsdC4gRm9yIGEgZmxvdyB3aGVyZSBob3VycyBtYXR0ZXIsIHNldCBgcnVuX2ludGVydmFsX21pbnV0ZXNgIHRvIDYwIHdoZW5cbnlvdSBjcmVhdGUgdGhlIHNjb3V0IOKAkyB0aGUgdHJhZGVvZmYgaXMgdGhhdCBob3VybHkgYnVja2V0cyBhcmUgbm9pc2llciwgc28gcmFpc2UgdGhlIHZvbHVtZVxuZmxvb3IgYmVsb3cgdG8gbWF0Y2guXG5cbiMjIERpc2NyaW1pbmF0b3JcblxuRW1pdCBhIHJlcG9ydCB3aGVuIHRoZSAqKmNvbXBsZXRpb24gcmF0ZSoqIOKAkyBjb21wbGV0aW9ucyBkaXZpZGVkIGJ5IGF0dGVtcHRzIOKAkyBicmVha3MgZnJvbSBpdHNcbnRyYWlsaW5nIHR3by13ZWVrIG5vcm0gZm9yIHRoZSBzYW1lIGRheSBvZiB3ZWVrLiBXcml0ZSBub3RoaW5nIHdoZW4gYXR0ZW1wdHMgYW5kIGNvbXBsZXRpb25zXG5tb3ZlZCB0b2dldGhlciBhbmQgdGhlIHJhdGUgaGVsZDogdGhhdCdzIGEgdHJhZmZpYyBjaGFuZ2UsIG5vdCBicmVha2FnZS5cblxuQXR0ZW1wdHMgYXJlIHRoZSBkaXNxdWFsaWZpZXIgY2hlY2ssIG5vdCBoYWxmIHRoZSB0cmlnZ2VyLiBXYXRjaGluZyB0d28gY291bnRzIHNlcGFyYXRlbHkgbGVhdmVzXG55b3Ugc3R1Y2sgdGhlIG1vbWVudCBib3RoIG1vdmUgYSBsaXR0bGU7IHdhdGNoaW5nIHRoZSByYXRlIGRvZXNuJ3QuXG5cbiMjIyBUaGUgYmFyXG5cbkEgc3RhcnRpbmcgcG9pbnQsIHRvIGJlIHR1bmVkIGFnYWluc3Qgd2hhdCB0aGlzIGZsb3cncyBkYXRhIGFjdHVhbGx5IGRvZXM6XG5cbi0gYSBjb21wbGV0aW9uIHJhdGUgKiriiaUxMCBwb2ludHMgYmVsb3cqKiBpdHMgdHJhaWxpbmcgMTQtZGF5IG1lZGlhbiBmb3IgdGhlIHNhbWUgd2Vla2RheSwgb24gYVxuICBjb21wbGV0ZSBidWNrZXQsIGFuZFxuLSAqKuKJpTUwMCBhdHRlbXB0cyoqIGluIHRoYXQgYnVja2V0LlxuXG5UaGUgdm9sdW1lIGZsb29yIG1hdHRlcnMgbW9yZSB0aGFuIHRoZSB0aHJlc2hvbGQuIEEgY29tcGxldGlvbiByYXRlIGNvbXB1dGVkIG9uIDQwIGF0dGVtcHRzIGlzXG5ub2lzZSwgYW5kIGEgc2NvdXQgdGhhdCBmaXJlcyBvbiBpdCBpcyBleGFjdGx5IHRoZSBjcnlpbmctd29sZiBmYWlsdXJlIHRoZSBkaXNjcmltaW5hdG9yIGlzXG5tZWFudCB0byBwcmV2ZW50LiBJZiB0aGUgZmxvdyBkb2Vzbid0IGNsZWFyIHRoZSBmbG9vciwgd2lkZW4gdGhlIGJ1Y2tldCByYXRoZXIgdGhhbiBsb3dlcmluZyB0aGVcbmJhciwgYW5kIHdyaXRlIHdoYXQgeW91IGNob3NlIHRvIHRoZSBzY3JhdGNocGFkLlxuXG4jIyBFeHBsb3JlXG5cbjEuICoqQ29uZmlybSB0aGUgaW5zdHJ1bWVudGF0aW9uIHN0aWxsIHdvcmtzLioqIEJlZm9yZSBhbnl0aGluZyBlbHNlOiBpcyB0aGUgY29tcGxldGlvbiBldmVudFxuICAgc3RpbGwgZmlyaW5nIGF0IGFsbCwgYW5kIHdhcyBpdCByZW5hbWVkLCBtb3ZlZCwgb3IgcmVtb3ZlZCBpbiB0aGUgZGVwbG95IHdpbmRvdz8gQSBicm9rZW5cbiAgIHRyYWNraW5nIGNhbGwgbG9va3MgaWRlbnRpY2FsIHRvIGEgYnJva2VuIHByb2R1Y3Qg4oCTIGF0dGVtcHRzIGZsYXQsIGNvbXBsZXRpb25zIGdvbmUg4oCTIGFuZCBpdFxuICAgaXMgdGhlIG1vc3QgbGlrZWx5IGZhbHNlIHBvc2l0aXZlIGZvciB0aGlzIHNjb3V0LiBDaGVjayB0aGUgZXZlbnQncyB0b3RhbCB2b2x1bWUgYWNyb3NzIGFsbFxuICAgcHJvcGVydGllcywgbm90IGp1c3Qgd2l0aGluIHRoZSBmbG93LiBgc2lnbmFscy1zY291dC1vYnNlcnZhYmlsaXR5LWdhcHNgIHdhdGNoZXMgdGhpcyBraW5kIG9mXG4gICBkcmlmdCBtb3JlIGJyb2FkbHkuXG4yLiAqKkNoZWNrIHdoZXRoZXIgdGhlIGRyb3AgaXMgdW5pZm9ybS4qKiBEaWQgdGhlIGNvbXBsZXRpb24gcmF0ZSBmYWxsIGFjcm9zcyBldmVyeSBzZWdtZW50LCBvclxuICAgb25seSBpbnNpZGUgYSBuZXcgb3Igc2hpZnRlZCBvbmU_IFN0ZWFkeSBhdHRlbXB0cyB3aXRoIGEgZmFsbGluZyByYXRlIGlzIGFsc28gdGhlIHNoYXBlIG9mIGFcbiAgIHRyYWZmaWMtY29tcG9zaXRpb24gY2hhbmdlIOKAkyBhIGNhbXBhaWduIGJyaW5naW5nIGxvd2VyLWludGVudCB1c2VycywgYSBuZXcgZ2VvLCBhIGJvdCB3YXZlLlxuICAgTm90aGluZyBpcyBicm9rZW4gaW4gdGhhdCBjYXNlLCBhbmQgdGhlIHJhdGUgZnJhbWluZyBhbG9uZSB3b24ndCBjYXRjaCBpdC4gQnJlYWsgZG93biBieVxuICAgc291cmNlLCBkZXZpY2UsIGdlbywgYW5kIG5ldy12cy1yZXR1cm5pbmcgYmVmb3JlIGdvaW5nIGZ1cnRoZXIuXG4zLiAqKkZpbmQgd2hhdCB3YXMgY2F1Z2h0LioqIExvb2sgZm9yIG5ldyBvciBzcGlraW5nIGVycm9yLXRyYWNraW5nIGlzc3VlcyBvbiB0aGUgc2FtZSBjb2RlXG4gICBwYXRoLCB3ZWlnaHRpbmcgKipoYW5kbGVkKiogZXhjZXB0aW9ucyDigJMgdGhlIG9uZXMgdGhhdCBuZXZlciByZWFjaGVkIHRoZSB1c2VyLiBBIGNhdWdodFxuICAgdGltZW91dCwgYSByZXRyeSB0aGF0IGV4aGF1c3RlZCwgYSBmYWxsYmFjayB0aGF0IHJldHVybmVkIGVtcHR5LiBUaGlzIGlzIHRoZSBtZWNoYW5pc20gdGhlXG4gICB3aG9sZSBzY291dCBpcyBidWlsdCBhcm91bmQsIHNvIGxvb2sgaGVyZSBiZWZvcmUgbG9va2luZyBhbnl3aGVyZSBlbHNlLlxuNC4gKipDaGVjayB0aGUgZmFpbHVyZXMgdGhhdCBuZXZlciByZWFjaGVkIHlvdXIgc2VydmVyLioqIElmIEVycm9yIFRyYWNraW5nIGlzIGNsZWFuLCB0aGUgZmFpbHVyZVxuICAgbWF5IG5vdCBoYXZlIG1hZGUgaXQgb3V0IG9mIHRoZSBicm93c2VyOiBhIGRyb3BwZWQgcmVxdWVzdCwgYW4gYWQgYmxvY2tlciBvciBDU1AgcnVsZVxuICAgYmxvY2tpbmcgdGhlIGNhbGwsIHRoZSB0YWIgY2xvc2luZyBtaWQtcmVxdWVzdC4gU2Vzc2lvbiBSZXBsYXkgaXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBzZWVzXG4gICB0aGVzZSDigJMgbG9vayBmb3Igc3RhbGxzLCByYWdlIGNsaWNrcywgYW5kIGFiYW5kb25tZW50IGF0IGEgY29uc2lzdGVudCBwb2ludCBpbiB0aGUgZmxvdy5cbjUuICoqTG9jYXRlIGl0IGluIHRoZSBmbG93LioqIElmIGludGVybWVkaWF0ZSBldmVudHMgZXhpc3QsIGZpbmQgdGhlIHN0ZXAgd2hlcmUgdGhlIGRyb3AgaGFwcGVucy5cbiAgIFdpdGhvdXQgdGhlbSB5b3UgY2FuIHNheSB0aGUgZmxvdyBicm9rZSwgYnV0IG5vdCB3aGVyZS5cbjYuICoqVGllIGl0IHRvIGEgZGVwbG95LioqIFdoZXJlIGEgZGVwbG95IHNpdHMgaW4gdGhlIHdpbmRvdywgaW5jbHVkZSB0aGUgY29tbWl0IHJhbmdlLlxuNy4gTmFtZSB0aGUgbW9zdCBsaWtlbHkgY2F1c2UgaW4gdGhlIHJlcG9ydC4gQSByYXRlIHRoYXQgbW92ZWQgd2l0aCBubyBjYXVzZSBhdHRhY2hlZCBpc1xuICAgc29tZXRoaW5nIHRoZSByZWFkZXIgc3RpbGwgaGFzIHRvIGdvIGludmVzdGlnYXRlIHRoZW1zZWx2ZXMuXG5cbiMjIERpc3F1YWxpZmllcnNcblxuLSBBdHRlbXB0cyBhbmQgY29tcGxldGlvbnMgbW92ZWQgdG9nZXRoZXIg4oCTIHRoZSByYXRlIGhlbGQuXG4tIFRoZSBjb21wbGV0aW9uIGV2ZW50IHN0b3BwZWQgZmlyaW5nIGVudGlyZWx5LCBvciB3YXMgcmVuYW1lZCBpbiB0aGUgd2luZG93LiBUaGF0J3MgYW5cbiAgaW5zdHJ1bWVudGF0aW9uIGZpbmRpbmcsIG5vdCBhIHByb2R1Y3Qgb25lLCBhbmQgaXQgc2hvdWxkIHNheSBzby5cbi0gVGhlIHJhdGUgZmVsbCBvbmx5IGluc2lkZSBvbmUgbmV3IG9yIHNoaWZ0ZWQgc2VnbWVudCDigJMgdGhhdCdzIGEgbWl4IGNoYW5nZSwgbm90IGJyZWFrYWdlLlxuLSBUaGUgYnVja2V0IGlzIGJlbG93IHRoZSB2b2x1bWUgZmxvb3IuXG4tIFRoZSBjaGFuZ2UgaXMgd2l0aGluIG5vcm1hbCB3ZWVrZGF5L3dlZWtlbmQgdmFyaWFuY2UuXG4tIEEga25vd24sIGFubm91bmNlZCBtYWludGVuYW5jZSB3aW5kb3cgY292ZXJzIHRoZSBwZXJpb2QuIn0)