Sending states, quota and safe retries
Understand accepted and unknown while avoiding duplicate sends and charges.
Editorial update: October 30, 2026In this guide
State meanings
| State | Meaning |
|---|---|
| queued | Recorded and waiting; quota is reserved. |
| sending | Submission is in progress; do not create a replacement request. |
| accepted | The provider acknowledged submission, not delivery or reading. |
| failed | A definite failure; inspect error before creating another message. |
| unknown | Acceptance is uncertain; it is not automatically resubmitted to avoid duplicates. |
If the response is lost
- Keep the same body and Idempotency-Key for the same business event.
- Retry the original request if needed; an existing record returns the same message ID and state.
- Do not change the body under the same key; a mismatch returns IDEMPOTENCY_CONFLICT.
- Do not generate a new key just because of a timeout. Review an unknown outcome before manually deciding on another message.
How quota is counted
The owner’s projects and domains share quota. Each recipient is one unit. A definite failure refunds its reservation once to the original period; accepted and unknown retain it. Adding packs during the current period does not start a new month for those packs: they expire at the existing end date, with no rollover.