Error codes
errors · error code · API error · validation error · what does this error mean
API answers carry a code, not a sentence: {"code": "stores.not_found", "message": "…"}. The dashboard translates
the code into the reader’s language. This list is generated from Azimea’s code on every docs build.
Activity
| Code | What the dashboard says |
|---|---|
activity.batch_too_large | Send at most {{max}} events in one call. |
activity.conversion_currency_property_invalid | The currency must come from one of the event's text properties. |
activity.conversion_limit_reached | You already count {{max}} event types as conversions. Turn one off to add another. |
activity.conversion_not_allowed | This event type's conversion setting can't be changed: your store's events are fixed, and a paid order always counts. |
activity.conversion_value_property_invalid | The value must come from one of the event's number properties. |
activity.event_contact_required | Say who did it: send the contact’s user id or email address. |
activity.event_id_required | Every event needs an id, unique in your account, so a retry is safe. |
activity.event_id_too_long | The event id can be at most {{max}} characters. |
activity.event_in_future | The event’s time is in the future. Check the sender’s clock. |
activity.event_name_invalid | Event names use lowercase letters, digits, “_” and “.”, and start with a letter. |
activity.event_name_reserved | Names starting with “{{prefix}}” are reserved by Azimea. |
activity.event_properties_invalid | Properties must be an object of at most {{maxBytes}} bytes and {{maxDepth}} levels. |
activity.event_too_old | Events older than {{days}} days aren’t accepted. |
activity.event_type_not_found | No event called “{{name}}” has been received yet. |
Ai
| Code | What the dashboard says |
|---|---|
ai.credits_exhausted | You have used your AI credits for this period. They renew next month. |
ai.failed | The AI help did not answer right now. Try again in a moment. |
ai.image_refused | This description cannot be turned into a picture. Try describing something else. |
ai.monthly_cap_reached | The AI help is paused for your account until next month. Contact us if you need it sooner. |
ai.not_in_plan | This AI feature is available from the {{plan}} plan. |
ai.unavailable | The AI help is not available right now. |
ai.usage_limit_reached | You have used this {{max}} times this month. It is available again next month. |
Analytics
| Code | What the dashboard says |
|---|---|
analytics.attribution_window_invalid | Choose 1, 3, 5, 7, 14 or 30 days. |
analytics.report_range_invalid | Pick a start and an end date, at most {{max}} days apart. |
analytics.report_tab_unknown | There is no such report to export. |
Audience
| Code | What the dashboard says |
|---|---|
audience.attribute_exists | A contact field called “{{key}}” already exists. |
audience.attribute_key_invalid | Use lowercase letters, digits and underscores for the field key, starting with a letter (at most {{max}} characters). |
audience.attribute_limit_reached | You’ve reached the limit of {{max}} contact fields. Archive one you no longer use. |
audience.attribute_not_found | There is no contact field called “{{key}}”. |
audience.attribute_reserved | “{{key}}” is already a built-in contact field. Choose another name. |
audience.attribute_type_mismatch | The value for “{{key}}” doesn’t match the field’s type. |
audience.attribute_unknown | There is no contact field called “{{key}}”. Create it first. |
audience.attribute_value_too_large | The value is too large for this field (at most {{max}}). |
audience.batch_too_large | Send at most {{max}} contacts in one call. |
audience.consent_double_opt_in_not_applicable | Double opt-in only applies when people opt in with a checkbox or your own form. |
audience.consent_not_configured | Choose how you collect consent first, then declare it. |
audience.consent_proof_required | A subscription needs its proof: the exact text the person agreed to. |
audience.contact_email_required | An email address is needed to create a new contact. |
audience.contact_identity_conflict | The user id and the email address belong to two different contacts. |
audience.contact_limit_reached | You have {{count}} active contacts (people you can email) and your plan includes {{limit}}. Remove contacts you no longer need, or move to a larger plan. |
audience.contact_not_found | That contact does not exist. |
audience.contact_reference_invalid | Refer to a contact by its id, ext:<your user id> or email:<address>. |
audience.contact_reference_missing | Send the contact’s id, your own user id or an email address. |
audience.contact_shape_invalid | The contact isn’t in the expected format: use the same object as POST /contacts. |
audience.contact_store_managed | This contact comes from a store: its email, id and consent are kept in sync by the store. |
audience.demo_already_added | This sandbox already has its demo contacts. Delete the contacts tagged "demo" to add them again. |
audience.demo_only_in_sandbox | Demo contacts can only be added inside a sandbox. |
audience.export_selection_too_large | Too many contacts selected: at most {{max}} at a time. |
audience.export_too_large | The export has more than {{max}} contacts. Narrow the list with a filter. |
audience.file_email_column_missing | Choose which column holds the email address. |
audience.file_empty | The file has no rows to import. |
audience.file_too_large | This file is larger than {{max}} MB. Split it, or save it as CSV, which is much smaller. |
audience.file_too_many_rows | This file has too many rows. Split it into files of up to {{max}} rows. |
audience.file_unsupported | Upload a CSV or Excel (.xlsx) file. |
audience.import_attestation_required | Confirm how these people agreed to hear from you before importing them with a consent basis. |
audience.import_column_invalid | A column is mapped twice, or to a column the file doesn’t have. |
audience.import_email_duplicate | This address already appears earlier in the file. |
audience.import_email_invalid | This row has no valid email address. |
audience.import_file_missing | The uploaded file is no longer available. Upload it again. |
audience.import_in_progress | Another import is still running. Start this one when it finishes. |
audience.import_interrupted | The import stopped because of an error on our side. The rows saved before it stopped are kept; upload the file again to finish. |
audience.import_not_found | Import not found. |
audience.segment_built_in | A built-in segment can’t be deleted. You can rename it or change its conditions. |
audience.segment_empty | Add at least one condition. |
audience.segment_in_use | A campaign or a flow still uses this segment. Give it another audience first. |
audience.segment_name_taken | A segment with this name already exists. |
audience.segment_not_found | This segment no longer exists. |
audience.segment_rule_invalid | Condition {{index}} isn’t complete: check its field, its condition and its value. |
audience.segment_text_invalid | Describe the contacts in a few words, up to {{max}} characters. |
audience.segment_text_unclear | We could not turn this into conditions. Try saying it with the fields you see in the list. |
audience.segment_too_many_rules | A segment can have at most {{max}} conditions. |
audience.store_disconnected | The store was disconnected. |
audience.store_not_active | The store is not active. Check the connection before importing. |
audience.store_responded | The store responded with an error ({{status}}). |
Audit
| Code | What the dashboard says |
|---|---|
audit.range_end_before_start | The end of the range must be after its start. |
Automation
| Code | What the dashboard says |
|---|---|
automation.api_trigger_invalid | This trigger token is not valid. |
automation.instance_not_found | That run does not exist. |
automation.instance_not_retryable | Only a run that has failed can be retried. |
automation.no_draft | There is no draft to publish or discard. |
automation.nothing_changed | Nothing has changed since the live version. |
automation.run_already_pending | This workflow is already starting. Wait until it finishes, then run it again. |
automation.starter_code_invalid | This is not one of the starter emails. |
automation.step_test_not_found | This email step is not testing versions. |
automation.step_version_unknown | That version is not one of this step’s. |
automation.test_contact_missing | Choose an existing contact or describe a test contact. |
automation.trigger_call_id_invalid | The call id must be between 1 and 100 characters. |
automation.trigger_properties_invalid | Properties must be an object of at most {{maxBytes}} bytes and {{maxDepth}} levels. |
automation.version_not_found | That version of the workflow no longer exists. |
automation.workflow_archived | Restore this workflow before making changes to it. |
automation.workflow_graph_invalid | This workflow has problems to fix before it can be published. |
automation.workflow_name_invalid | Give the workflow a name of up to {{max}} characters. |
automation.workflow_name_taken | A workflow with this name already exists. |
automation.workflow_not_found | That workflow does not exist. |
automation.workflow_not_published | Publish this workflow with this trigger before using it. |
Billing
| Code | What the dashboard says |
|---|---|
billing.account_unavailable | The payment details could not be loaded from Stripe. Try again in a moment. |
billing.already_on_plan | You are already on this plan. |
billing.checkout_failed | The payment page could not be opened. Try again. |
billing.no_stripe_customer | There is no billing history yet. Choose a plan first. |
billing.not_configured | Payments are not set up on this server. |
billing.not_in_sandbox | A sandbox uses your live company’s plan. Change the plan from the live company. |
billing.not_on_trial | This company is not on a trial. |
billing.payment_method_is_default | This is the payment method your subscription is charged on. Make another one the default before removing it. |
billing.payment_method_not_found | This payment method is not on your account. |
billing.payment_method_update_failed | Stripe did not accept the change. Try again. |
billing.payments_unreachable | We could not reach the payment service. Try again in a moment. |
billing.plan_price_missing | The {{plan}} plan does not have a price set up yet. |
billing.portal_failed | The billing portal could not be opened. Try again. |
billing.sending_blocked_canceled | The subscription is cancelled, so emails are not going out. Your data stays intact: pick a plan and sending restarts where it left off. |
billing.sending_blocked_trial_ended | The trial period has ended. Pick a plan to restart sending; your contacts, campaigns and flows are waiting for you just as you left them. |
billing.subscription_not_found | This company has no subscription. |
billing.subscription_not_found_for_customer | No subscription matches this Stripe customer. |
billing.trial_not_activatable | The trial starts on its own when the company is created; it cannot be activated as a paid plan. |
billing.trial_not_payable | The trial is free; there is nothing to pay for. |
Campaigns
| Code | What the dashboard says |
|---|---|
campaigns.ab_no_versions | Add version B to the A/B test, or turn the test off. |
campaigns.ab_not_found | This email has no such A/B test version. |
campaigns.ab_not_waiting | This A/B test is not waiting for its winner. |
campaigns.ab_percent_invalid | A test takes 10% to 50% of the audience, or everyone in a plain split. |
campaigns.ab_version_incomplete | Version {{label}} of the A/B test is not finished. |
campaigns.ab_versions_full | An A/B test has at most three versions. |
campaigns.ab_wait_too_long | That wait is too long for what decides the winner. |
campaigns.ab_with_languages | An email with language versions cannot have an A/B test yet. |
campaigns.already_sending | The campaign is being sent right now. |
campaigns.already_sent | The campaign has already been sent. |
campaigns.approval_not_requested | This email is not waiting for approval. |
campaigns.archive_while_scheduled | A scheduled campaign can’t be archived. Cancel the schedule first. |
campaigns.archive_while_sending | A campaign can't be archived while it's being sent. |
campaigns.archived | This campaign is archived. Bring it back to the list before sending it. |
campaigns.best_time_with_ab | Turn off “each person’s best time” or the A/B test: they cannot run together. |
campaigns.body_missing | Write the email content before you send. |
campaigns.calendar_range_invalid | The calendar shows one month at a time. |
campaigns.compare_ids_invalid | Name one to four campaigns to compare. |
campaigns.consent_not_declared | You have not declared how you collect consent yet. Do it in Settings, under Consent, then start the campaign. |
campaigns.holdout_invalid | Choose 5, 10 or 20 percent for the control group. |
campaigns.holdout_not_found | This email has no control group to measure. |
campaigns.initiative_emails_invalid | A new campaign can start with at most 5 planned emails. |
campaigns.initiative_goal_invalid | Choose what the goal counts and a target above zero. |
campaigns.initiative_no_emails | Add an email to the campaign before you start it. |
campaigns.initiative_not_found | This campaign no longer exists. |
campaigns.initiative_not_ready | Some emails of the campaign are not ready yet. |
campaigns.initiative_not_started | This campaign has not been started. |
campaigns.initiative_period_invalid | Choose a start and an end, with the end after the start. |
campaigns.initiative_started | Some emails of this campaign are scheduled or already sent. Archive it instead. |
campaigns.no_recipients | Nobody in the chosen audience can receive emails right now. |
campaigns.not_found | That campaign does not exist. |
campaigns.not_paused | This email is not paused. |
campaigns.not_scheduled | This campaign isn’t scheduled. |
campaigns.not_sending | This email is not sending right now. |
campaigns.pause_failed | Sending could not be paused or resumed. Try again. |
campaigns.proposal_no_more_ideas | That was the last idea for this week: {{max}} a week. |
campaigns.proposal_not_found | There is no proposal for this week. |
campaigns.proposal_unclear | We could not put a usable proposal together this time. Try again later. |
campaigns.recipients_unreadable | The list of recipients could not be read. |
campaigns.resend_not_sent | Only an email that finished sending can be resent. |
campaigns.resend_of_resend | A resend cannot be resent again. |
campaigns.resend_source_missing | The email this resend follows no longer exists. |
campaigns.schedule_in_past | Pick a time at least {{minutes}} minutes from now. |
campaigns.schedule_too_far | A campaign can be scheduled at most {{days}} days ahead. |
campaigns.scheduled | This campaign is scheduled. Cancel the schedule to change it. |
campaigns.segment_unavailable | The segment this campaign goes to no longer exists. Choose another audience. |
campaigns.send_interrupted | Sending stopped. Start the campaign again; it picks up where it left off. |
campaigns.send_stopped | The campaign stopped while it was being sent. |
campaigns.share_expiry_invalid | Choose 7, 30 or 90 days, or no end. |
campaigns.share_nothing_sent | Nothing of this campaign has gone out yet, so there is no report to share. |
campaigns.shared_report_not_found | This report is no longer shared. |
campaigns.start_no_time | Choose when this email goes out. |
campaigns.start_outside_period | This email goes out outside the campaign’s period. |
campaigns.subject_ideas_text_invalid | Write the email first: the ideas are written for what it says. |
campaigns.subject_ideas_unclear | We could not write usable ideas this time. Try again. |
campaigns.subject_missing | Write a subject before you send. |
campaigns.test_contact_not_found | That contact is no longer in your list. |
campaigns.test_not_sent | The test email could not be sent. |
campaigns.token_unavailable | The email uses tokens a campaign can't fill: {{tokens}}. Campaigns know the person and the store, not a cart or an order. |
campaigns.variant_language_invalid | Choose the language of this version. |
campaigns.variant_limit | A campaign can have at most {{max}} language versions. |
campaigns.variant_not_found | There is no version in that language. |
Catalog
| Code | What the dashboard says |
|---|---|
catalog.batch_too_large | Send at most {{max}} items in one call. |
catalog.import_file_missing | Choose a CSV file to import. |
catalog.import_file_too_large | The file is too large: at most {{max}} MB. |
catalog.import_file_unreadable | The file could not be read as a table: save it as CSV, with a header row. |
catalog.import_mapping_invalid | Choose one column for the id and one for the name; every other field at most once. |
catalog.import_too_many_rows | The file has too many rows: at most {{max}} items at a time. |
catalog.import_value_invalid | This value could not be read. |
catalog.item_attributes_invalid | At most {{max}} fields, each a short lowercase key with a text, number or yes/no value. |
catalog.item_categories_invalid | At most {{max}} categories, each a short name. |
catalog.item_currency_invalid | Write the currency as its three-letter code, such as RON or EUR. |
catalog.item_field_too_long | Too long: at most {{max}} characters. |
catalog.item_id_missing | Every item needs your own id for it, so it can be updated later. |
catalog.item_kind_invalid | The kind is product, plan, service or other. |
catalog.item_name_missing | Every item needs a name. |
catalog.item_not_found | That item is not in the catalogue. |
catalog.item_price_invalid | A price is a number of zero or more; a price before discount is higher than the price. |
catalog.item_read_only | This item comes from your store: change it there and it updates here. |
catalog.item_stock_invalid | The quantity in stock is a whole number of zero or more. |
catalog.item_url_invalid | Write a full address, starting with https://. |
catalog.items_limit | The catalogue is full: it holds at most {{max}} items. |
catalog.store_sync_failed | The store's products could not be read ({{status}}). |
Commerce
| Code | What the dashboard says |
|---|---|
commerce.cart_email_invalid | The cart’s email address is not valid. |
commerce.cart_not_found | That cart does not exist. |
commerce.export_selection_too_large | Too many orders selected: at most {{max}} at a time. |
commerce.export_too_large | The export has more than {{max}} orders. Narrow the list with a filter. |
commerce.import_store_disconnected | The store was disconnected. |
commerce.import_store_responded | The store responded with {{status}}. |
commerce.order_not_found | That order does not exist. |
commerce.store_not_active | The store is not active. Check the connection before importing. |
Common
| Code | What the dashboard says |
|---|---|
common.conflict | Something changed in the meantime. Reload the page and try again. |
common.forbidden | You do not have access to this. Ask someone on your team for rights. |
common.not_found | We could not find that. It may have been deleted. |
common.too_many_requests | Too many requests in a short time. Try again in a moment. |
common.unauthorized | Your session has ended. Sign in again. |
common.unavailable | The service is not responding right now. Try again in a few minutes. |
common.unexpected | Something went wrong on our side. If you write to support, give them the code {{correlationId}}. |
Content
| Code | What the dashboard says |
|---|---|
content.ai_bad_answer | The result was not usable, so your text was left as it is. Try again. |
content.ai_image_data_invalid | This picture could not be saved. Try making it again. |
content.ai_image_prompt_invalid | Describe the picture in a few words, up to {{max}} characters. |
content.ai_request_invalid | Choose what to do with the text. |
content.ai_text_invalid | Write some text first. The help works on up to {{max}} characters at a time. |
content.image_heic_unsupported | This looks like an iPhone HEIC photo. Export or convert it to JPEG first, then upload it. |
content.image_limit_reached | You reached the limit of {{max}} images. |
content.image_missing | Choose an image to upload. |
content.image_storage_unavailable | Uploading images is not available right now. |
content.image_too_large | The image is too large. The most we accept is {{maxMb}} MB. |
content.image_type_unsupported | Use a PNG, JPEG, GIF, WebP, BMP or AVIF image. |
content.model_body_required | Design the email before saving it. |
content.model_built_in | This model came with Azimea: hide it instead of deleting it. |
content.model_code_invalid | Use lower-case letters, digits and dashes, up to {{max}} characters. |
content.model_code_taken | Another model already uses this code. |
content.model_description_too_long | Keep the description under {{max}} characters. |
content.model_english_required | A published model needs its English version: companies whose language it lacks see that one. |
content.model_language_invalid | Pick one of the six languages. |
content.model_not_found | That model does not exist any more. |
content.model_order_invalid | The list changed meanwhile. Reload it and order it again. |
content.model_subject_required | Write a subject. |
content.model_words_unknown | These personalised words cannot be filled: {{words}}. |
content.saved_row_invalid | This row could not be saved. |
content.saved_row_limit_reached | You keep {{max}} rows already. Remove one you no longer use. |
content.saved_row_name_invalid | Give the row a name of up to {{max}} characters. |
content.saved_row_not_found | That row does not exist any more. |
content.starter_code_invalid | This is not one of the starter emails. |
content.system_email_not_editable | This system email cannot be rewritten. |
content.system_email_nothing_to_publish | There is no draft to publish. |
content.system_email_version_not_found | That version does not exist any more. |
content.system_email_word_missing | The email needs this word to work: {{word}}. |
content.system_email_words_unknown | This email cannot fill these words: {{words}}. |
content.template_body_missing | Write the email content before you send a test. |
content.template_limit_reached | You reached the limit of {{max}} templates. Delete one you no longer use. |
content.template_name_invalid | Give the template a name of up to {{max}} characters. |
content.template_not_found | That template doesn't exist anymore. |
content.template_subject_missing | Write a subject before you send a test. |
content.template_test_not_sent | The test email could not be sent. |
content.template_too_large | This email is too long to save as a template. |
content.version_not_found | That version does not exist any more. |
content.version_scope_invalid | This version could not be kept. |
content.version_too_large | This email is too large to keep a version of. |
Deliverability
| Code | What the dashboard says |
|---|---|
deliverability.default_sender_cannot_be_removed | The default sender can't be removed. Make another one the default first. |
deliverability.dkim_keys_not_found | This domain has no saved keys. Remove it and add it again. |
deliverability.dkim_public_key_missing | The saved key is incomplete. Remove the domain and add it again. |
deliverability.dns_records_lost | The SPF and DKIM records are no longer in DNS. Publish them again to keep sending from this domain. |
deliverability.domain_already_added | This domain is already on the list. |
deliverability.domain_delete_failed | The domain could not be removed at the sending provider. Try again. |
deliverability.domain_invalid | Enter a domain, like “mystore.com”. |
deliverability.domain_limit_reached | You already have {{max}} domains. Remove one before adding another. |
deliverability.domain_missing_at_provider | The domain no longer exists at the sending provider. Remove it and add it again. |
deliverability.domain_not_found | That domain does not exist. |
deliverability.domain_rejected_by_provider | The sending provider refused this domain. |
deliverability.domain_reserved | This domain belongs to Azimea and cannot be added. |
deliverability.domain_taken | This domain is already used by another Azimea account. Write to suport@azimea.com if it is yours. |
deliverability.from_email_not_on_verified_domain | The address must be on a verified domain. “{{domain}}” is not verified yet. |
deliverability.key_vault_forbidden | We were not allowed to read the domain keys. We have been notified. |
deliverability.key_vault_not_configured | We cannot prepare the domain keys on this server. We have been notified. |
deliverability.key_vault_response_unexpected | The key vault answered with something we did not expect. We have been notified. |
deliverability.key_vault_unreachable | We could not reach the key vault. Try again in a few minutes. |
deliverability.key_vault_write_failed | The domain keys could not be saved. Try again. |
deliverability.provider_error | The sending provider answered with an error. Try again in a few minutes. |
deliverability.provider_response_unreadable | We could not read the sending provider’s answer. Try again. |
deliverability.provider_unreachable | The sending provider did not answer. Try again in a few minutes. |
deliverability.sender_already_saved | This address is already one of your senders. |
deliverability.sender_domain_not_verified | The domain “{{domain}}” is no longer verified, so nothing can be sent from it. |
deliverability.sender_limit_reached | Your plan allows {{max}} senders. Remove one or move to a larger plan. |
deliverability.sender_not_found | This sender no longer exists. |
deliverability.sender_not_saved | “{{email}}” isn't one of your senders. Add it in Settings · Sending, or choose another. |
deliverability.sender_not_set | You do not have a sender address yet. Pick one in Settings · Sending domains. |
deliverability.sending_not_configured | Sending is not configured on this server, so domains cannot be verified. |
Identity
| Code | What the dashboard says |
|---|---|
identity.account_blocked | This account is blocked. Write to us at suport@azimea.com. |
identity.account_locked | The account is locked for a few minutes after too many attempts. |
identity.account_not_created | The account could not be created. Try again. |
identity.api_key_expiry_not_allowed | Choose 30, 90 or 365 days. |
identity.api_key_limit | You already have {{max}} active keys. Revoke one before creating another. |
identity.api_key_not_found | That key does not exist. |
identity.api_key_scope_unknown | That permission does not exist. |
identity.confirmation_link_invalid | This confirmation link is no longer valid. Ask for a new one. |
identity.email_already_confirmed | This email is already confirmed. |
identity.email_not_confirmed | Confirm your email before signing in. |
identity.email_taken | There is already an account with this email. |
identity.erase_email_mismatch | Type the person's email exactly to confirm. |
identity.erase_last_owner | They are the only owner of a company with other people. Make someone else owner first. |
identity.invalid_credentials | Email or password is not correct. |
identity.language_invalid | This is not one of the app's languages. |
identity.not_member_of_tenant | You are not part of this company. |
identity.ops_access_denied | This account cannot open the Azimea console. |
identity.ops_break_glass_owner | This owner is set in the server's configuration and can only be changed there. |
identity.ops_cannot_reset_operator | An operator's two-factor authentication cannot be reset from the console. |
identity.ops_last_owner | The console needs at least one owner. Make someone else owner first. |
identity.ops_operator_exists | This person is already an operator. |
identity.ops_operator_not_found | This person is not an operator. |
identity.ops_owner_email_unconfirmed | This account's email is not confirmed. Confirm it from the dashboard first, or use another address. |
identity.ops_setup_done | The console already has an owner. Sign in with your own account. |
identity.ops_two_factor_required | Turn on two-factor authentication in the dashboard before opening the console. |
identity.ops_user_is_operator | This person is an operator. Remove them from Operators first. |
identity.password_incorrect | That is not your current password. |
identity.password_weak | That password is too weak. Pick a longer one. |
identity.reset_link_invalid | This link is no longer valid. Ask for a new one. |
identity.support_link_invalid | This support link is no longer valid. Open the company again from the console. |
identity.support_read_only | Support view is read-only: nothing can be changed here. |
identity.two_factor_already_enabled | Two-step verification is already on. |
identity.two_factor_code_invalid | That code is not valid. Check the app and try again. |
identity.two_factor_not_enabled | Two-step verification is not on. |
identity.two_factor_session_expired | The sign-in took too long. Enter your password again. |
identity.two_factor_setup_missing | Start the setup again to get a new QR code. |
identity.user_already_blocked | This account is already blocked. |
identity.user_erased | This account was erased; nothing can be changed on it. |
identity.user_not_blocked | This account is not blocked. |
identity.user_not_found | That user does not exist. |
identity.user_not_locked | This account is not locked. |
Ingestion
| Code | What the dashboard says |
|---|---|
ingestion.batch_too_large | Too many events in one delivery: at most {{max}}. |
ingestion.body_invalid | The delivery body is not the expected JSON. |
ingestion.channel_broken | The store’s secret can no longer be read. Generate new keys in the store screen. |
ingestion.channel_not_found | This store has no plugin keys yet. |
ingestion.delivery_stale | The delivery is too old or the store’s clock is off. Check the server time. |
ingestion.event_too_old | The event is older than a week and was not processed. |
ingestion.event_unknown | We do not know this event type yet. Update the app or the plugin. |
ingestion.origin_not_allowed | Events for this store are accepted only from the store’s own site. |
ingestion.payload_invalid | The event is missing a required field. |
ingestion.platform_signature_invalid | The webhook is not signed with this platform’s key. |
ingestion.signature_invalid | The delivery is not signed with this store’s secret. Check the keys in the plugin. |
ingestion.store_not_found | That store does not exist. |
Notices
| Code | What the dashboard says |
|---|---|
notices.action_both | Lead either to a page in the app or to a link outside it, not both. |
notices.action_incomplete | An action needs both a label and a place to lead. |
notices.action_route_invalid | A page in the app starts with / (and not //). |
notices.action_url_invalid | A link outside the app must start with https://. |
notices.audience_invalid | That audience names a role, pack, plan or language that does not exist. |
notices.ended | This message has ended and cannot be changed. |
notices.english_required | Write the message in English at least: it is what every other language falls back to. |
notices.escalation_incomplete | Say after how many days, and what the message becomes. |
notices.key_invalid | Use lowercase letters, digits, dots and dashes (3 to 100). |
notices.key_taken | There is already a message with this key. |
notices.language_unknown | That is not one of the app's languages. |
notices.not_dismissible | This message stays until it is dealt with. |
notices.not_found | That message is no longer there. |
notices.snooze_limit | This message was already put off as many times as it allows. |
notices.snooze_not_allowed | This message cannot be put off. |
notices.status_invalid | A message cannot go back to draft. |
notices.window_invalid | The end must come after the start. |
Notifications
| Code | What the dashboard says |
|---|---|
notifications.not_found | That notification is no longer there. |
notifications.preferences_invalid | Those notification settings are not valid. |
notifications.unknown_type | That is not a kind of notification. |
Purposes
| Code | What the dashboard says |
|---|---|
purposes.service_confirmation_required | Confirm that these emails only inform and carry no offer before marking them as service. |
Sending
| Code | What the dashboard says |
|---|---|
sending.address_invalid | The email address is not valid: {{detail}} |
sending.address_rejected | The address permanently rejected the email. |
sending.already_suspended | Sending is already paused by Azimea. |
sending.daily_cap_reached | Today’s sending limit ({{cap}} emails) is reached. The rest goes out tomorrow. |
sending.daily_cap_used_up | Today’s sending limit is reached. The rest goes out tomorrow. |
sending.gate_bounced | Earlier emails bounced from this address. |
sending.gate_complained | The person marked an email as spam. |
sending.gate_no_basis | No basis to send: the person did not subscribe and did not buy. |
sending.gate_not_declared | You have not declared how you collect consent yet. Do it in Settings, under Consent. |
sending.gate_soft_opt_in_off | This store does not email existing customers without a checkbox, and this person did not tick one. |
sending.gate_topic_opted_out | The person turned off this email's topic. |
sending.gate_unsubscribed | The person unsubscribed. |
sending.mta_auth_refused | The mail server refused our login: {{detail}} |
sending.mta_connection_lost | The connection to the mail server dropped. The rest resumes on a new one. |
sending.mta_not_answering | The mail server is not answering: {{detail}} |
sending.mta_slow_down | The mail server asks us to send more slowly: {{detail}} |
sending.no_handover_answer | No hand-over to the mail server was answered, not even the last one. We do not know whether the email went out. |
sending.no_news_asked_again | No news from the mail server; asking again. |
sending.no_news_for_hours | No news for over {{hours}} hours. We do not know whether it arrived. |
sending.no_verified_sender | This company has no verified sender yet, so the emails are waiting. |
sending.not_suspended | Sending is not paused by Azimea. |
sending.plan_limit_reached | You have sent all {{limit}} emails included in your plan this month. The rest goes out at the start of next month, or sooner if you move to a bigger plan. |
sending.platform_email_failed | The email could not be sent. |
sending.platform_email_kind_unknown | There is no platform email of this kind. |
sending.provider_busy | The sending provider is busy. We will try again shortly. |
sending.provider_cannot_be_contacted | The sending provider cannot be reached right now. We will try again shortly. |
sending.provider_not_answering | The sending provider is not answering. We will try again shortly. |
sending.provider_rejected | The sending provider did not accept the email. |
sending.reputation_bounce_stop | Too many addresses bounced ({{rate}}%). The list needs cleaning before the next campaign. |
sending.reputation_bounce_warning | More bounces than usual ({{rate}}%). The limit stays where it is until things settle. |
sending.reputation_complaint_stop | Too many people marked the emails as spam ({{rate}}%). Above this level, Gmail and Yahoo start blocking everybody sending from the same IP. |
sending.reputation_complaint_warning | More complaints than usual ({{rate}}%). The limit stays where it is until things settle. |
sending.reputation_good | Good figures. The limit went up. |
sending.reputation_new_company | New company. The limit grows as the figures look good. |
sending.reputation_paused | Sending is stopped. A person restarts it, after finding out what happened. |
sending.reputation_restarted | Restarted by hand. The limit starts over. |
sending.reputation_too_few_sends | Too few emails sent to draw a conclusion. The limit stays where it is. |
sending.sandbox_email_not_found | That email is not in this sandbox’s inbox any more. |
sending.sending_stopped | Sending is stopped. |
sending.signature_invalid | Invalid signature. |
sending.suppression_not_found | That address is no longer on the do-not-send list. |
sending.suppression_not_removable | Only bounced addresses can be taken off the list. An unsubscribe or a complaint can only be undone by the person, by subscribing again. |
sending.suspended_by_operator | Azimea paused your sending. Contact support to resume it. |
sending.webhook_auto_disabled | Turned off automatically after {{failures}} failed deliveries in a row. |
sending.webhook_event_unknown | That event type does not exist. |
sending.webhook_http_error | The address answered with error {{status}}. |
sending.webhook_limit_reached | You already have {{max}} active webhooks. Delete one before adding another. |
sending.webhook_no_answer | The address did not answer. |
sending.webhook_not_found | That webhook does not exist. |
sending.webhook_secret_unreadable | The webhook secret can no longer be read. Delete the webhook and add it again. |
sending.webhook_stopped | The webhook was stopped or deleted. |
sending.webhook_timeout | The address did not answer in time. |
sending.webhook_unreachable | We could not reach the address. |
sending.webhook_url_invalid | The address must be an https URL (http is accepted only on localhost). |
sending.webhook_url_not_allowed | The address is not allowed: it points to a private network or it redirects. |
Stores
| Code | What the dashboard says |
|---|---|
stores.already_connected | This store is already connected. Check the connection or disconnect it before using other keys. |
stores.checkouts_not_kept | This platform does not keep abandoned checkouts. |
stores.connection_failed | The connection to the store failed. |
stores.consumer_key_format | A consumer key starts with “ck_” and is 43 characters long. |
stores.consumer_secret_format | A consumer secret starts with “cs_” and is 43 characters long. |
stores.credentials_rejected | The store refused the API keys. Check them and make sure they have read and write access. |
stores.credentials_unreadable | The saved keys can no longer be read. Connect the store again with your API keys. |
stores.disconnected | This store is disconnected. Connect it again with your API keys. |
stores.gomag_key_format | Paste the API key exactly as Gomag shows it, in one piece. |
stores.gomag_key_rejected | Gomag did not accept this API key for this shop. Check the key and that the address is your shop’s own. |
stores.gomag_shop_not_found | Gomag does not know a shop at this address. Use the address your customers open. |
stores.http_error | The store answered with error {{status}}. Try again later. |
stores.integration_already_available | This platform can be connected already; there is no waiting list for it. |
stores.integration_not_found | That platform is not in the catalogue. |
stores.limit_reached | Your plan includes {{max}} connected stores. Disconnect one or move to a larger plan. |
stores.magento_api_not_found | The Magento REST API did not answer at this address. Check the store’s address. |
stores.magento_permission_missing | The integration cannot read “{{resource}}”. Tick it in the integration’s API resources (System › Integrations) and save. |
stores.magento_token_format | The access token is 32 letters and digits. |
stores.magento_token_rejected | Magento did not accept this access token. Check the token, and that “Allow OAuth Access Tokens to be used as standalone Bearer tokens” is set to Yes in Stores › Configuration › Services › OAuth. |
stores.merchantpro_api_not_found | The MerchantPro API did not answer at this address. Use your shop’s own address, the one customers open. |
stores.merchantpro_keys_rejected | MerchantPro did not accept this API user. Check the name and the secret, and that the user is active. |
stores.merchantpro_permission_missing | The API user cannot read “{{resource}}”. Give it read access and try again. |
stores.merchantpro_secret_format | Paste the API user’s secret exactly as MerchantPro shows it. |
stores.merchantpro_user_format | Paste the API user’s name exactly as MerchantPro shows it. |
stores.not_a_woocommerce_api | The store did not answer like a WooCommerce API. A security plugin or a firewall may be blocking it. |
stores.not_active | This store is not active. |
stores.not_found | That store does not exist. |
stores.opencart_extension_not_found | The Azimea extension did not answer at this address. Check the address, and that the extension is installed and enabled in OpenCart. |
stores.opencart_key_format | The read key starts with “azr_”. Copy it again from the Azimea extension in OpenCart. |
stores.opencart_keys_rejected | The shop did not accept these read keys. Copy both again from the Azimea extension: making new keys stops the old ones. |
stores.opencart_secret_format | The read secret starts with “azs_”. Copy it again from the Azimea extension in OpenCart. |
stores.platform_not_available | This platform cannot be connected yet. |
stores.prestashop_key_format | The webservice key is 32 letters and digits. |
stores.prestashop_key_rejected | PrestaShop did not accept this webservice key. Check that it is copied whole and that its status is on. |
stores.prestashop_permission_missing | The webservice key cannot read “{{resource}}”. Tick GET for it on the key and try again. |
stores.prestashop_webservice_disabled | The PrestaShop webservice is turned off. Turn it on in Advanced Parameters › Webservice. |
stores.prestashop_webservice_not_found | The PrestaShop webservice did not answer at this address. Check the address and that the webservice is on. |
stores.response_unexpected | The store answered with something we did not expect. |
stores.rest_api_not_found | We could not find the WooCommerce REST API at this address. Check the address, that WooCommerce is active and that permalinks are not set to “Plain”. |
stores.shopify_domain_invalid | Type your shop’s Shopify address, the one ending in .myshopify.com. |
stores.shopify_install_invalid | The approval from Shopify could not be checked or has expired. Start the install again from Azimea. |
stores.shopify_not_configured | Shopify cannot be connected from this installation yet. |
stores.shopify_permission_missing | The Azimea app is missing a permission on this shop. Open the app in Shopify and approve the update. |
stores.shopify_shop_not_found | Shopify does not know this shop. Check the .myshopify.com address. |
stores.shopify_token_rejected | Shopify no longer accepts Azimea’s access to this shop: the app was uninstalled. Install it again to reconnect. |
stores.shopify_use_install | A Shopify shop is connected by installing the Azimea app, not with keys. |
stores.shopware_api_not_found | The Shopware Admin API did not answer at this address. Use your shop’s own address. |
stores.shopware_app_deactivated | The Azimea app is deactivated in Shopware. Activate it again in Extensions › My extensions. |
stores.shopware_keys_rejected | Shopware no longer accepts the Azimea app’s keys. Reinstall the app in Shopware, then check the connection. |
stores.shopware_link_code_invalid | This link code does not match a Shopware shop at this address. Copy it again from the Azimea app’s settings in Shopware. |
stores.shopware_not_confirmed | The Shopware shop has not finished installing the Azimea app. Install it again in Shopware. |
stores.shopware_permission_missing | The Azimea app is not allowed to read “{{resource}}”. Update the app in Shopware and accept its permissions. |
stores.shopware_registration_invalid | The Shopware app registration is not signed correctly. |
stores.timeout | The store did not answer in time. Try again. |
stores.unreachable | We could not reach the store. Check the address and that the site is online. |
stores.url_has_credentials | The address cannot carry a user name or a password. |
stores.url_not_https | The store must use HTTPS: API keys are never sent unencrypted. |
stores.url_not_public | The address does not point to a public server. |
stores.url_port_not_allowed | The address cannot use a non-standard port. |
stores.url_redirects | The address redirects. Use the final address of the site. |
stores.url_redirects_to | The address redirects to {{location}}. Use the final address of the site. |
stores.webhook_secret_format | Paste the webhook secret exactly as your shop shows it. |
Tenancy
| Code | What the dashboard says |
|---|---|
tenancy.already_invited | There's already a pending invitation for this address. |
tenancy.already_member | This person is already on the team. |
tenancy.brand_color_invalid | Use a color like #2f6bff. |
tenancy.cannot_change_own_role | You can't change your own role. |
tenancy.cannot_invite_as_owner | An invitation can only grant Admin or Member. |
tenancy.cannot_remove_self | You can't remove yourself from the team. |
tenancy.company_closed | This company is closed. |
tenancy.company_not_created | The company could not be created. Try again. |
tenancy.company_not_found | That company does not exist. |
tenancy.company_status_unchanged | The company is already in that state. |
tenancy.company_suspended | This company is suspended. Contact Azimea support. |
tenancy.copy_kind_not_supported | Templates, flows and campaigns can be copied to live. |
tenancy.copy_to_live_not_allowed | Only the live company’s owners and administrators can copy to live. |
tenancy.footer_language_invalid | A footer text is for a language the app does not write in. |
tenancy.identity_text_too_long | That text is too long. Use at most {{max}} characters. |
tenancy.invitation_already_accepted | This invitation was already accepted. |
tenancy.invitation_email_mismatch | This invitation was sent to a different email address. |
tenancy.invitation_expired | This invitation has expired. Ask for a new one. |
tenancy.invitation_not_found | That invitation does not exist. |
tenancy.invitation_revoked | This invitation was cancelled. |
tenancy.last_owner_required | The company needs at least one owner. |
tenancy.logo_url_invalid | The logo must be an image address starting with https://. |
tenancy.market_unknown | That country is not on the list. |
tenancy.member_not_found | That member does not exist. |
tenancy.not_a_sandbox | This is only possible inside a sandbox. |
tenancy.only_owner_can_grant_owner | Only an owner can grant or remove the owner role. |
tenancy.sandbox_address_exists | This address is already on the list. |
tenancy.sandbox_address_limit_reached | A sandbox can have up to ten test addresses. Remove one to add another. |
tenancy.sandbox_address_not_found | That test address is no longer on the list. |
tenancy.sandbox_copy_failed | We could not fill the sandbox with your company’s settings. Nothing was kept; try again. |
tenancy.sandbox_in_sandbox | Sandboxes are made from the live company. Leave this sandbox first. |
tenancy.sandbox_limit_reached | This company already has five sandboxes. Delete one to make another. |
tenancy.sandbox_not_found | That sandbox no longer exists. |
tenancy.site_unreachable | We could not open this site. Check the address and try again. |
tenancy.website_url_invalid | Write the full address of your site, starting with https://. |
Topics
| Code | What the dashboard says |
|---|---|
topics.archived | This topic is archived. Restore it in Settings, or pick another one. |
topics.description_too_long | Keep the description under {{max}} characters. |
topics.key_invalid | Use lowercase letters, digits and '_' for the key, starting with a letter (up to {{max}} characters). |
topics.key_taken | Another topic already uses the key "{{key}}". Keys stay taken even when a topic is archived. |
topics.limit_reached | You already have {{max}} topics. Archive one to add another. |
topics.name_invalid | Give the topic a name of up to {{max}} characters. |
topics.not_found | That topic doesn't exist any more. |
Validation
| Code | What the dashboard says |
|---|---|
validation.email | Enter a valid email address. |
validation.enum | Pick one of the available options. |
validation.exact_length | Exactly {{max}} characters. |
validation.greater_than | Must be greater than {{value}}. |
validation.invalid | This value is not valid. |
validation.length | Between {{min}} and {{max}} characters. |
validation.less_than | Must be less than {{value}}. |
validation.max_length | Too long: at most {{max}} characters. |
validation.min_length | Too short: at least {{min}} characters. |
validation.not_equal | This value cannot be used. |
validation.pattern | This is not the right format. |
validation.range | Choose between {{from}} and {{to}}. |
validation.required | Fill in this field. |
validation.too_many | Too many: at most {{max}}. |
validation.url | Enter a valid address. |