# E17xxx — Agent mailboxes

Error codes in the `E17xxx` range that the public Bird API returns. Each code links to its own page (the page its `doc_url` points at) with the cause and what to do. Retired codes stay listed; they are never renamed or reused.

| Code                                | Name                       | Status | Message                                                                                                                                       |
| ----------------------------------- | -------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| [`E17000`](/docs/api/errors/E17000) | `MailboxAddressTaken`      | `409`  | This address is already bound to a mailbox on this domain. Choose a different local part.                                                     |
| [`E17001`](/docs/api/errors/E17001) | `MailboxAddressTombstoned` | `409`  | This address belonged to a deleted mailbox and cannot be bound yet. Rebinding is possible 30 days after deletion, in the same workspace only. |
| [`E17002`](/docs/api/errors/E17002) | `MailboxHandleTaken`       | `409`  | This handle is already taken. Choose a different handle.                                                                                      |
| [`E17003`](/docs/api/errors/E17003) | —                          | —      | _Retired: no longer returned, never reused._                                                                                                  |
| [`E17005`](/docs/api/errors/E17005) | `ReceiveRuleExists`        | `409`  | A receive rule for this entry already exists on the mailbox. Delete the existing rule first to change its action.                             |
| [`E17006`](/docs/api/errors/E17006) | `ReceiveRuleLimitExceeded` | `422`  | The mailbox already has the maximum of 200 receive rules. Delete rules you no longer need, then retry.                                        |
| [`E17007`](/docs/api/errors/E17007) | `MailboxSuspended`         | `403`  | This mailbox is suspended. Resume it, or upgrade your plan, to use it again.                                                                  |
| [`E17008`](/docs/api/errors/E17008) | `DomainHasMailboxes`       | `409`  | This domain still has agent mailboxes bound to it. Delete its mailboxes first, then delete the domain.                                        |
| [`E17009`](/docs/api/errors/E17009) | `DomainNotInboundEnabled`  | `422`  | This domain is not enabled for receiving email, so it cannot host a mailbox.                                                                  |
| [`E17040`](/docs/api/errors/E17040) | `ThreadExpired`            | `410`  | This conversation has passed its retention period and is no longer available.                                                                 |
| [`E17041`](/docs/api/errors/E17041) | `MessageExpired`           | `410`  | This message has passed its retention period and is no longer available.                                                                      |
| [`E17042`](/docs/api/errors/E17042) | `MessageSourceExpired`     | `410`  | The original rendered source of this message has expired. The message's extracted text remains available for the mailbox's retention period.  |
| [`E17045`](/docs/api/errors/E17045) | `MessageNotInThread`       | `404`  | This message does not belong to this conversation.                                                                                            |

## Related

- [Errors](/docs/api/errors): the full wire contract, status mapping, and all code ranges
- [Error handling](/docs/guides/errors): branching on `type` and `code`, validation details, and `vendor_code`