# Troubleshooting

> Symptom-first diagnosis — why an email did not send, a contact was not enrolled, a campaign is not running, a reply was not detected, and more.

_Status: Reviewed — human-edited, facts not yet confirmed against the product._

Each page starts from the symptom you observe, lists the likely causes in order of
frequency, and gives a diagnostic checklist that identifies the exact one — grounded in
Reply's product documentation, with the rule that explains the behavior linked at every
step.

## Sending

- [Why was an email not sent?](/troubleshooting/email-was-not-sent) — account, limits, schedule, contact state; the Log tab as the error surface
- [Why is a campaign not running?](/troubleshooting/campaign-is-not-running) — the toggle colors, provider blocks, the 8% bounce suspension
- [Why was a mailbox disconnected?](/troubleshooting/mailbox-was-disconnected) — expired tokens, revoked access, provider suspensions

## Contacts and replies

- [Why was a contact not enrolled?](/troubleshooting/contact-was-not-enrolled) — import skips, Opted Out, keep-in-sequence options
- [Why was a reply not detected?](/troubleshooting/reply-was-not-detected) — the 3-4 hour window, folder and address matching
- [Why do statistics not match?](/troubleshooting/statistics-do-not-match) — denominators, time filters, tracking gaps

## Planned

| Page | Status |
| --- | --- |
| Automatic reply was counted | Not written |
| Contact was duplicated | Not written |
| Contact remained active after reply | Not written |
| Daily limit was not reached | Not written |
| Webhook was not received | Not written |

## Related

- [Behavior](/behavior) — the intended behavior behind each symptom

## Build with Reply

- REST API: [docs.reply.io](https://docs.reply.io/api-reference/introduction) — the state-inspection endpoints used in these checklists
- MCP: [agents.reply.io/mcp](https://agents.reply.io/mcp) — agents run the same diagnostics
