E04xxx — Email sending & delivery
Error codes in the E04xxx 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 |
|---|---|---|---|
| E04000 | EmailBatchRequestTooLarge | 413 | Batch request body exceeds the 20 MB cap. |
| E04001 | AttachmentContentTypeBlocked | 422 | The attachment content type is not allowed. See the email attachment documentation for the blocklist. |
| E04002 | MessageTooLarge | 413 | Estimated generated message size exceeds the 20 MB cap. |
| E04004 | SuppressionNotFound | 404 | Email suppression not found. |
| E04006 | DomainNotVerified | 422 | The from address uses a domain that is not verified in this workspace. |
| E04007 | UnsupportedEmailFeature | 422 | This request contains a reserved field that is not yet supported. |
| E04008 | EmailBackendUnavailable | 503 | The email service is temporarily unavailable. Please retry. |
| E04009 | OnboardingRecipientNotAllowed | 422 | Sends from the shared onboarding domain can only go to verified members of your workspace. To send to any recipient, add and verify a custom sending domain. |
| E04010 | OnboardingSendLimitExceeded | 429 | The daily send limit for the shared onboarding domain has been reached. Verify your own sending domain to remove the limit. |
| E04011 | RecipientDomainNotAllowed | 422 | Sending to reserved testing domains such as @example.com or @test.com is not supported. These domains cannot receive mail — use a real recipient address instead. |
| E04012 | EmailContentNotFound | 404 | No content was stored for this message. |
| E04013 | EmailContentExpired | 410 | The stored content for this message has expired and is no longer available. |
| E04014 | EmailContentNotReady | 425 | The content for this message is not available yet because it is still being stored. Retry shortly. |
| E04015 | MonthlySendLimitExceeded | 429 | This organization has reached its monthly email send limit. |
| E04016 | SendCeilingUnavailable | 503 | The email send-limit service is temporarily unavailable. Please retry. |
| E04017 | DailySendLimitExceeded | 429 | This organization has reached its daily email send limit. |
| E04021 | EmailTemplateNotFound | 404 | Email template not found. |
| E04024 | EmailTemplateNotPublished | 422 | The email template has no published version to send. Publish the template first. |
| E04026 | ContactEmailExists | 409 | A contact with this email address already exists in this workspace. |
| E04027 | ContactExternalIdExists | 409 | A contact with this external_id already exists in this workspace. |
| E04028 | AudienceInUse | 409 | This audience is targeted by one or more broadcasts and cannot be deleted. Remove it from those broadcasts first. |
| E04029 | ContactPropertyArchived | 409 | This contact property is already archived. |
| E04030 | ContactPropertyNotArchived | 409 | This contact property is not archived. |
| E04031 | ContactPropertyLimit | 422 | This workspace has reached the maximum number of contact properties. Archived properties still count toward this limit, so archiving does not free a slot; reuse or update an existing property instead. |
| E04032 | ContactPropertyKeyExists | 409 | A contact property with this key already exists in this workspace. |
| E04033 | EmailSmtpConfigNotFound | 404 | SMTP config not found for this API key. |
| E04036 | — | — | Retired: no longer returned, never reused. |
Related
- Errors: the full wire contract, status mapping, and all code ranges
- Error handling: branching on type and code, validation details, and vendor_code