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 | The batch is larger than 20 MB. |
E04001 | AttachmentContentTypeBlocked | 422 | The attachment content type is not allowed. See the email attachment documentation for the blocklist. |
E04002 | MessageTooLarge | 413 | Once generated, this message is over the 20 MB limit. |
E04004 | SuppressionNotFound | 404 | There is no suppression for that address. |
E04006 | DomainNotVerified | 422 | The from address uses a domain that is not verified in this workspace. |
E04007 | UnsupportedEmailFeature | 422 | This endpoint does not support what the request asked for: a field it cannot accept, or a combination of fields it cannot accept together. |
E04008 | EmailBackendUnavailable | 503 | Email is temporarily unavailable. |
E04009 | OnboardingRecipientNotAllowed | 422 | Sends from the shared onboarding domain can only go to verified members of your workspace. |
E04010 | OnboardingSendLimitExceeded | 429 | The daily send limit for the shared onboarding domain has been reached. |
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 | We did not store the content of this message. |
E04013 | EmailContentExpired | 410 | The stored content for this message has expired. |
E04014 | EmailContentNotReady | 425 | The content of this message is not stored yet. |
E04015 | MonthlySendLimitExceeded | 429 | This organization has reached its monthly email send limit. |
E04016 | SendCeilingUnavailable | 503 | Email sending limits are temporarily unavailable. Retry in a moment. |
E04017 | DailySendLimitExceeded | 429 | This organization has reached its daily email send limit. |
E04018 | AudienceEmpty | 422 | This audience has nobody to send to. It is either empty, or none of its contacts has an email address. |
E04019 | AudienceAllSuppressed | 422 | Every contact in this audience that has an email address is suppressed. No email can be sent. |
E04020 | AudienceUnavailable | 422 | The audience set on this broadcast no longer exists. |
E04021 | EmailTemplateNotFound | 404 | There is no template in this workspace with that id or slug. |
E04022 | EmailTemplateSlugTaken | 409 | A template with this slug already exists in this workspace. |
E04023 | EmailTemplateConflict | 409 | Someone else changed the draft since you loaded it, so this change was rejected to avoid overwriting theirs. |
E04024 | EmailTemplateNotPublished | 422 | This template has no published version, so there is nothing to send. |
E04025 | EmailTemplateSlugReserved | 422 | Slugs starting with bird_ or emt_ are reserved. Choose a different slug. |
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 | — | — | Retired: no longer returned, never reused. |
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 | There is no SMTP configuration for this API key. |
E04036 | — | — | Retired: no longer returned, never reused. |
E04037 | BroadcastNoAudience | 422 | This broadcast has no audience selected, so there is nothing to count or send. Select an audience first. |
E04038 | EmailTemplateVersionNotPublished | 422 | You can only roll back to a published version. |
E04039 | BroadcastTemplateVariableUnfillable | 422 | This template uses a variable that a broadcast has no value for. A broadcast fills in contact properties and nothing else, because that is all it knows about each recipient. Take the variable out of the template, or change it to a contact property, then send the broadcast again. |
E04040 | BroadcastNotEditable | 409 | This broadcast can no longer be edited or deleted. Only a draft or a scheduled broadcast can be edited, and only a draft can be deleted. |
E04041 | BroadcastNotCancelable | 409 | This broadcast's status does not allow this action. A draft cannot be canceled, only deleted. A broadcast that has already sent or failed is finished, and cannot be sent, scheduled, or canceled anymore. |
E04043 | EmailTemplateLanguageNotFound | 404 | This version does not have the language you asked for. |
E04044 | EmailTemplateVersionImmutable | 422 | Published versions are immutable. Edit the template's draft instead. |
E04045 | EmailTemplateLanguageInvalid | 422 | The language is not a valid language tag. |
E04046 | EmailTemplateSlugInvalid | 422 | This is not a valid slug. |
E04047 | EmailTemplateDefaultLanguageRequired | 422 | The default language has to be one of the languages the template has. |
E04048 | EmailTemplateLanguageNotAvailable | 422 | This template does not have the language you asked for. |
E04049 | EmailTemplateLanguageRequired | 422 | This template requires every send to name a language. |
E04050 | EmailTemplateNoChangesToSubmit | 422 | The draft matches the template's published version, so there is nothing to submit. |
E04051 | EmailTemplateDraftInvalid | 422 | The draft is not ready to submit. |
E04052 | EmailTemplateNothingToSubmit | 422 | Only a template's draft can be submitted. This request named an already-published version, so it is rejected no matter which languages you named. |
E04053 | EmailTemplateEmptyDraft | 422 | The draft has no content to submit. |
E04054 | — | — | Retired: no longer returned, never reused. |
E04055 | ContactPhoneExists | 409 | A contact with this phone number already exists in this workspace. |
E04056 | ContactIdentifierRequired | 422 | A contact needs at least one reachable identifier. Supply an email address, a phone number, or both. |
E04057 | ContactPhoneInvalid | 422 | This does not look like a phone number. Send the international form, a leading plus sign, then the country code and number, for example +31612345678. |
E04058 | ContactMatchAmbiguous | 409 | This entry's identifiers belong to more than one contact. |
E04059 | EmailTemplateVariableUnknown | 422 | The content references a bird. value we do not provide. |
E04060 | ContactMatchKeyMissing | 422 | This entry does not carry the identifier the batch's match_on requires. |
E04061 | EmailTemplateVariableInvalid | 422 | The content references a parameter whose name is not a single word. |
E04062 | EmailTemplateParameterMissing | 422 | The send does not supply a value for every parameter the template uses. |
E04063 | EmailTemplateUnsubscribeMisplaced | 422 | The unsubscribe variable is somewhere we cannot turn into a link. |
E04064 | EmailTemplateUnsubscribeRequired | 422 | A marketing template needs an unsubscribe link. |
E04065 | EmailTemplateContactUnavailable | 422 | The template reads contact data, which this send cannot fill. |
E04066 | EmailTemplateVariableUnfillable | 422 | The template's published version reads a value nothing can fill. |
E04067 | OverageCapReached | 429 | This organization has reached the email volume included in its plan, and overage is turned off. |
E04068 | SuppressionNotRemovableByAPIKey | 422 | This suppression records a spam complaint, so it cannot be removed with an API key. |
E04069 | OverageUnfunded | 402 | This organization has used the email volume included in its plan and its wallet cannot cover further overage. |
E04070 | OverageCeilingReached | 429 | This organization has reached its overage limit for the billing period. |
E04071 | EmailTemplateContactPropertyArchived | 422 | The content reads a contact property that has been archived. |
E04072 | EmailStatsHistoryUnavailable | 422 | Email statistics are unavailable for part of the requested period. |
E04073 | EmailStatsQueryTooLarge | 422 | The email statistics query exceeds a response limit. |
E04074 | EmailStatsUnsupportedQuery | 422 | The selected email metrics do not support these dimensions. |
Related
- Errors: the full wire contract, status mapping, and all code ranges
- Error handling: branching on
typeandcode, validation details, andvendor_code
Related resources
Continue with the documentation, guides and examples for this topic.