---
title: Triage a production bug
description: From a customer report to a proven fix — reproduce first, find the cause, fix it narrowly with a regression test, prove it in a browser, and deliver a draft pull request.
---

A customer reports: *"The Pay button does nothing on Safari."* This guide takes
it from report to proven fix.

## Step by step

<div class="steps" markdown>

### Start from the triage playbook

Pick **Production error triage** under the composer, or write the brief
yourself. Put what you know in, and ask for proof:

```text title="Brief"
Fix the checkout drop-off: the Pay button does nothing on Safari.
Reproduce it first. Find the cause, fix it with the smallest change, and
add a regression test. Prove the checkout works in a browser at desktop
and mobile widths. Don't change the payment provider integration.
```

Attach the customer's screenshot or error log if you have one.

### Turn on browser review

The bug is about something a person clicks, so browser review is what proves
the fix. Without it, the criterion would be reported as *unproven*.

### Watch the reproduction

Ysra finds your project's commands and reproduces the problem before changing
anything. If it can't reproduce it, it says so and asks — that's the moment to
add detail ("only when the cart has a discount code").

### Let the loop run

A typical trail: an edit, a type-check that fails, the fix to the fix, the test
passing, then the browser filling the checkout form and waiting for *Order
confirmed*.

<div class="phones" markdown>

![The live feed of this fix: found commands, updated cart.ts, a type-check failure and its repair, the test passing, and the browser filling the checkout form](../assets/screens/mobile/feed.webp){ width="585" height="1266" }
/// caption
The whole fix, step by step.
///

</div>

### Check the evidence

- **Checks** — the regression test and your suite passed on this exact
  candidate.
- **Review** — the criterion *Pay works on Safari* is proven by an executed
  browser run, with screenshots.
- **Editor** — the diff is small and touches only the cart.

### Deliver

Open the draft pull request. Its report links the evidence, so reviewers can see
what was proven before they read the code.

</div>

## If it goes sideways

??? question "Ysra can't reproduce the bug"
    It stops and asks rather than guessing a fix. Add the missing condition —
    browser version, account state, data — and it continues.

??? question "An unrelated test fails"
    If it was failing before the session, it's reported as pre-existing and
    doesn't block the fix.
