---
{
  "id": "platform.email.reply-limits-and-safety",
  "topic": "email",
  "title": "Email reply idempotency, billing, and safety",
  "locale": "en",
  "version": "2026-08-20",
  "summary": "Email replies are private, redacted, reputation- and credit-gated, idempotent for equivalent retries, and refunded once after a permanent provider failure.",
  "content": "Outbound reputation limits allow at most 20 replies per inbox during a rolling hour and 5 replies to the same normalized recipient during a rolling 24-hour window. These transactional limits run before credit debit or provider reservation; reaching either returns `resource_conflict`. The owner's credit balance remains a separate billing gate.\n\nAn equivalent retry with the same inbound-email ID and same normalized body recovers the existing message and provider idempotency key. It does not send a second copy, consume another quota slot, or charge again. A permanently failed provider send terminalizes that reply and refunds its recorded credit charge once. Retrying the same content then returns `resource_conflict`; revise the content or use another channel rather than treating the retry as a new message.\n\n`permission_denied` with top-up details means the owner's credit cannot cover the reply. `resource_conflict` also covers a paused inbox or a terminally undeliverable reply; ask the owner to resume the inbox where applicable. `resource_not_found` means the row is not a dispatched email owned by this Agent and conversation. Honor `invalid_arguments` and other typed details exactly as returned; current typed error details are more authoritative than prose.\n\nReply `body` is a redacted sensitive argument, and neither knowledge nor routing telemetry may retain the text. The action is forbidden on public surfaces. Its action-level confirmation is whatever the live registry declares; knowledge grants no permission and bypasses no policy. The platform adds reply threading plus an `Auto-Submitted` loop-protection header so automated peers should not reply forever.\n",
  "aliases": [
    "email reply limit",
    "duplicate email retry",
    "email reply refund",
    "reply failed",
    "email credit",
    "回信上限",
    "重複回覆",
    "回信失敗"
  ],
  "tags": [
    "email",
    "idempotency",
    "billing",
    "safety"
  ],
  "relatedActions": [
    "arinova.email.reply"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/en/kb/email/reply-limits-and-safety/"
}
---

Outbound reputation limits allow at most 20 replies per inbox during a rolling hour and 5 replies to the same normalized recipient during a rolling 24-hour window. These transactional limits run before credit debit or provider reservation; reaching either returns `resource_conflict`. The owner's credit balance remains a separate billing gate.

An equivalent retry with the same inbound-email ID and same normalized body recovers the existing message and provider idempotency key. It does not send a second copy, consume another quota slot, or charge again. A permanently failed provider send terminalizes that reply and refunds its recorded credit charge once. Retrying the same content then returns `resource_conflict`; revise the content or use another channel rather than treating the retry as a new message.

`permission_denied` with top-up details means the owner's credit cannot cover the reply. `resource_conflict` also covers a paused inbox or a terminally undeliverable reply; ask the owner to resume the inbox where applicable. `resource_not_found` means the row is not a dispatched email owned by this Agent and conversation. Honor `invalid_arguments` and other typed details exactly as returned; current typed error details are more authoritative than prose.

Reply `body` is a redacted sensitive argument, and neither knowledge nor routing telemetry may retain the text. The action is forbidden on public surfaces. Its action-level confirmation is whatever the live registry declares; knowledge grants no permission and bypasses no policy. The platform adds reply threading plus an `Auto-Submitted` loop-protection header so automated peers should not reply forever.
