One journey, followed through a failure
What ScoutSentinel sees when a customer cannot buy
A check of “Get a quote and buy a policy” runs every 5 minutes against ScoutSentinel's demo insurance site. It is an illustration, not a customer: the site, the fault and the timings are ours. The wording of the event and the alerts is what the product writes.
1 · A working check
Every step passes, and each one is timed
The check does what a customer does, in a real browser: opens the site, starts a quote, enters a trip, gets a price, buys with a test card and waits for the policy reference. Each step has an assertion, so “passed” means the customer could finish, not that the page loaded.
Steps are written in plain words and proposed for you; you approve them before the check runs.
- 1
Open the home page
navigate https://demo-insurer.example/
Passed1.24 s - 2
Start a quote
click [data-testid=home-cta]
Passed610 ms - 3
Enter trip details
select destination · fill dates · fill travellers
Passed1.83 s - 4
Get quote button is shown
expect elementVisible [data-testid=get-quote]
Passed90 ms - 5
Get a price
click get-quote · expect elementVisible [data-testid=quote-price]
Passed1.42 s - 6
Buy the policy
click [data-testid=buy-now]
Passed880 ms - 7
Pay with the test card
fill card from secret · click [data-testid=complete-purchase]
Passed2.35 s - 8
Policy confirmed
expect elementVisible [data-testid=order-ref]
Passed310 ms
2 · A detected failure
The quote step fails. Uptime still reads healthy.
At 04:20 the “Get quote” button is gone. The page still loads in a quarter of a second and the health check still says ok, so an uptime monitor reports nothing. The check stops at step 4 of 8: no customer can get a price, so none can buy.
What an uptime check sees
Updemo-insurer.example · 04:20
- GET /api/health{"status":"ok"}200 OK84 ms
- GET /Home page loads200 OK212 ms
- GET /quoteQuote page loads200 OK236 ms
Every page answers, quickly. A dashboard built on these reads green.
What a customer can do
Cannot completeGet a quote and buy a policy · 04:20
Step 4 of 8: Get quote button is shown
expect elementVisible [data-testid=get-quote]
Result: element not visible after waiting 5 s
The quote page loads, but where the button should be it says “Quotes are temporarily unavailable online.” Nobody can get a price, so nobody can buy.
- 1
Open the home page
navigate https://demo-insurer.example/
Passed1.24 s - 2
Start a quote
click [data-testid=home-cta]
Passed610 ms - 3
Enter trip details
select destination · fill dates · fill travellers
Passed1.83 s - 4
Get quote button is shown
expect elementVisible [data-testid=get-quote]
Failed5 s - 5
Get a price
click get-quote · expect elementVisible [data-testid=quote-price]
Not run–no time, not run - 6
Buy the policy
click [data-testid=buy-now]
Not run–no time, not run - 7
Pay with the test card
fill card from secret · click [data-testid=complete-purchase]
Not run–no time, not run - 8
Policy confirmed
expect elementVisible [data-testid=order-ref]
Not run–no time, not run
One failed run is not an alert on its own. The next run, at 04:25, fails at the same step, and an event opens: two consecutive failures is the default, and you can change it per check.
Steps 1 to 3 passed, so the site is up and the trip form works. The break is at one step, which is where the fix starts.
If our side cannot run the check, the run is recorded as unknown with the reason, and is not counted as a failure of your journey.
3 · The evidence
Before and after, the failing assertion and the timeline
The event puts the screenshot from the last passing run beside the first failing one, states what the step expected and what it found, and lays out every run, release and alert in order.
Passed04:15last passing run
Get a travel insurance quote
Destination
Europe
Dates
14 Oct – 21 Oct
Travellers
2
Get quote
Failed04:20first failing run
Get a travel insurance quote
Destination
Europe
Dates
14 Oct – 21 Oct
Travellers
2
Quotes are temporarily unavailable online.
The event pairs the last passing run with the first failing one, so the difference is the first thing you see.
The failing assertionFailed
- Step
- 4. Get quote button is shown
- Expected
- expect elementVisible [data-testid=get-quote]
- Observed
- element not visible, after waiting 5 s
- Event
- Get a quote and buy a policy: step 4 "Get quote button is shown" element not visible (2 consecutive runs, cloudflare edge lhr)
Steps before it passed, so the failure is at this step, not the site as a whole. Depending on what the check captures, the page HTML, network log and browser trace from the same run sit beside the screenshot; each object is hashed when it is captured.
- 04:12Release
Release marker: quote-form deployed to production
- 04:15Passed
Run passed, all 8 steps (London). Last passing run.
- 04:20Failed
Run failed at step 4 (London)
- 04:25Failed
Run failed at step 4 again (London)
- 04:25Event
Event opened after 2 consecutive failures
- 04:25Alert
Alert sent to the on-call email and Slack
- 04:55Tolerance
Half of the service's 1 hour impact tolerance used; alert sent
UK time. Release markers come from your deployments (GitHub or the API) and sit on the same timeline, so a change just before the failure is easy to spot.
4 · The alert
What arrives, and what it names
On-call gets the task that failed, the step, where it was seen and a link to the event. Half an hour later the important business service “Customers can buy travel insurance online” has used half of its impact tolerance, and a second alert says so in those words.
Get a quote and buy a policy: step 4 "Get quote button is shown" element not visible (2 consecutive runs, cloudflare edge lhr)
A high Event is open on Get a quote and buy a policy.
Step 4 (Get quote button is shown) failed: element not visible. Failing since 04:20 across 2 runs from cloudflare edge lhr.
- Severity
- High
- Status
- Open
- Journey
- Get a quote and buy a policy
- Location
- cloudflare edge lhr
- Consecutive failures
- 2
View Event
The button opens the event: its steps, screenshots, timeline and every run behind it.
[High] Get a quote and buy a policy: step 4 "Get quote button is shown" element not visible (2 consecutive runs, cloudflare edge lhr)
Journey Get a quote and buy a policy · Status Open
View Event
Important business service "Customers can buy travel insurance online" has been disrupted for 30m: half of its 1h impact tolerance.
Raised again at 80% and when the tolerance is breached, through the same destinations.
Destinations: email (all plans), signed webhooks (all plans), Slack (Team and above) and PagerDuty (Team and above). Each alert names the journey; tolerance alerts also name the important business service, “Customers can buy travel insurance online”. Important business services start on Team.