---
title: "Issues"
description: "Recurring call problems, grouped into patterns you can triage — and fix with AI help."
---

The **Issues** page (`/dashboard/issues`, under Quality & Testing)
collects problems detected across your calls and groups repeat
occurrences into **patterns**, so fifty instances of "agent quoted the
wrong hours" show up as one row with a trend line — not fifty separate
reports.

## Where issues come from

- **System** — raised automatically by ThunderPhone's call analysis
  when it detects something going wrong on a call.
- **User** — raised by people: reported from a call's detail page or
  filed via the [issue reports API](/api-reference/issue-reports).

Each issue has a **severity** — Critical, Warning, or Info.

## Triage

Every pattern row shows its severity, an occurrence **trend**
sparkline, the number of affected **calls**, its **status**, and when
it was last seen. Statuses:

| Status | Meaning |
| --- | --- |
| **Open** | Needs attention — the default view shows only these. |
| **Dismissed** | Acknowledged; not being acted on. |
| **Resolved** | Fixed. New occurrences push a pattern back to the top. |

Change a pattern's status inline from its status control, or select
several rows (including "all matching") and update them in bulk.

Filter pills mirror the columns: **Status** (defaults to Open),
**Severity**, **Source**, free-text **Search** (title, trace, or call
ID), and a **Date** range — plus **Reset filters**.

## Dig into a pattern

Click a row to open the detail panel: the pattern's description, its
occurrence history, and the affected calls, each linking to the full
transcript in call history so you can see the failure in context.

### Fix with AI

Fix with AI needs recorded audio from at least one affected call. Calls made
while recording was disabled cannot be replayed. The investigation replays
stored turns; it does not place live calls or create billable simulation calls.

From the detail panel, **Fix with AI** checks whether the problem still
reproduces, then tests focused prompt changes against the affected turns and
clean comparison calls. The result shows the before-and-after replay rate,
detected side effects, and whether the issue was **Fixed** or **Improved**. You
review the winning redline before applying it. Leave the page at any time;
**Resume fix** returns to the saved investigation.

Nothing is applied automatically:

- **Apply fix** stages the prompt change in the agent's draft.
- **Apply & deploy** stages the change and deploys it immediately.

Both actions preserve unrelated draft edits. Until you deploy, the current
deployed prompt remains live.

If the audio cannot be reconstructed, the investigation ends as **Not
replayable**. If the issue no longer appears, it ends as **Not reproducible**.
It also stops without changing the agent when its replay budget ends before
confirmation.

ThunderPhone applies the change only when it can still find exactly one
unchanged match for the prompt section that was tested. Unrelated draft edits
are preserved. If that section changed or matches more than one place, apply
reports a conflict. Rerun the investigation against the current prompt before
applying it. See the [Investigations API
reference](/api-reference/investigations) for the complete status and replay
objects.

### Report to ThunderPhone

When the investigation finds no safe prompt fix, select **Report to
ThunderPhone**. ThunderPhone also routes some unresolved investigations
automatically. If you use organization-wide webhooks, the `issue.escalated`
event tells you that an issue pattern was reported and whether the report was
automatic. [Configure issue webhooks](/webhooks/events#issue-escalated).

## Next steps

<CardGroup cols={2}>
  <Card title="Alerts" icon="bell" href="/guides/alerts">
    Get notified when quality metrics slip, before issues pile up.
  </Card>
  <Card title="Simulations" icon="flask" href="/guides/test-agents">
    Turn a fixed issue into a regression test scenario.
  </Card>
</CardGroup>
