Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.digifist.com/llms.txt

Use this file to discover all available pages before exploring further.

Message delivery failures appear as FAILED status on individual messages in campaign analytics, automation activity logs, or Inbox conversation threads. Each failure has a specific error reason attached to it — identifying the error reason is the first step to resolving the underlying issue and preventing it from affecting future sends.

What this covers

  • Where to find delivery failure details
  • All common error types with resolution steps
  • How to prevent each error type in future sends
  • What to do when the error is not one of the common types

Step 1 — Find the failing messages

Delivery failures surface in three places depending on what triggered the send: Campaign failures — Go to Campaigns → [Campaign Name]. The analytics view shows the FAILED count. Click into the failed message detail to see per-message error reasons. Automation failures — Go to Automations → [Automation Name] → Activity. Find the customer whose message failed and expand their node execution history. The FAILED Action Node shows the specific error reason. Inbox failures — In the conversation thread, failed messages are marked with a failure indicator. The error reason is visible by hovering or expanding the message status.

Common error types and resolutions

What it means: The customer’s marketing_state is not SUBSCRIBED at the time the message was dispatched. Galantis attempted to send to a customer who has not explicitly opted into WhatsApp marketing.Common causes:
  • A customer’s consent state changed from SUBSCRIBED to UNSUBSCRIBED between when the campaign audience was estimated and when the send ran — for example, the customer replied STOP to a previous message in the gap between scheduling and dispatch
  • A manually imported list included customers without verified SUBSCRIBED consent
  • A segment was built without a Consent status = Yes rule, and some segment members have non-subscribed consent states
How to resolve:
  • For the current failed send: the message cannot be retroactively delivered — the customer was correctly excluded per WhatsApp policy
  • For future sends: add Consent status = Yes to all segments used as campaign audiences; review imported lists to ensure all entries have verified consent; check the Audience → Contacts → [Customer] profile to confirm marketing_state before investigating further
How to verify the customer’s consent state: Go to Audience → Contacts, search for the customer, and check their marketing_state field. If it shows UNSUBSCRIBED, the customer has opted out. If it shows NOT_SUBSCRIBED or UNKNOWN, they never provided consent.
This error is a compliance enforcement action, not a platform bug. Galantis is working correctly when it blocks sends to non-subscribed customers. The resolution is to ensure your audience targeting only includes SUBSCRIBED customers.
What it means: The customer’s phone number in Galantis does not include a country calling code (e.g., +52 for Mexico, +971 for UAE). WhatsApp requires internationally formatted phone numbers for message delivery.Common causes:
  • Customers entered their phone number at Shopify checkout without the country code (e.g., 5512345678 instead of +525512345678)
  • A phone number field in Shopify was not configured to require international format
  • A customer data import included phone numbers without calling codes
How to resolve:
  1. Go to Audience → Contacts → [Customer Name] and check the phone, phone_country_code, and phone_calling_code fields
  2. The phone number in Shopify must be corrected — Galantis syncs phone data from Shopify, so fixing it in Galantis only would be overwritten on the next sync
  3. Open Shopify Admin → Customers → [Customer] and update the phone number to include the correct international dialing prefix
  4. Save the customer record in Shopify — the customers/update webhook fires and propagates the corrected number to Galantis
For bulk affected customers: If many customers are affected, the root cause is likely a checkout phone field that does not enforce international format. Review your Shopify checkout phone field settings and consider adding validation or auto-formatting that appends the correct country code.How to avoid: Configure Shopify’s phone number collection to require or auto-format international phone numbers at the point of entry.
What it means: Your Galantis workspace ran out of message credits during the send. Messages dispatched after the credit balance reached zero failed with this error.Identifying the scope: Check your credit balance in Billing → Overview. If the balance is at or near zero, insufficient credits is the likely cause for recent failures. Compare the failed message count against your remaining credit balance at the time of the send.How to resolve:
  1. Top up your credit balance or upgrade your plan via Billing
  2. Determine whether the failed messages need to be re-sent — for campaigns, assess whether the unsent recipients are worth a follow-up send once credits are restored; for automations, the automation will resume processing new enrollments once credits are available, but already-failed messages for past enrollments will not auto-retry
Re-sending failed campaign messages: If a campaign partially failed due to insufficient credits and you want to reach the failed recipients, you can create a new campaign targeting only those recipients. Filter the audience to customers who did not receive the original campaign — use a list of the failed recipients or a segment based on last-message-received date.How to avoid: Set up a credit balance alert under Billing so you receive a notification when the balance drops below a threshold. Review estimated credit requirements before launching large campaigns.
Credits consumed before the balance hit zero are not refunded for partially failed campaigns. Ensure your credit balance is sufficient for the full estimated audience size before launching a campaign — the pre-launch compliance check validates this, but manually topping up before large sends removes the risk entirely.
What it means: An agent in the Inbox attempted to send a free-form session message to a customer, but the 24-hour conversation window had closed. Session messages are only permitted within an active window.How to resolve:
  • The agent must use an approved template to re-engage the customer outside the window
  • In the Inbox, select an approved template from the template picker to send the message
This is not an error in the platform — it is correct enforcement of WhatsApp’s messaging policy. See Compliance — Conversation Window for the full window rules.
What it means: The template assigned to the campaign or automation Action Node is not in APPROVED status. The message could not be sent because WhatsApp does not accept unapproved template sends.How to resolve:
  1. Check the template status in Templates → [Template Name]
  2. If PENDING_APPROVAL — wait for Meta’s review to complete
  3. If REJECTED — review the rejection reason and fix the template; see Template Rejection
  4. If PAUSED — the template was previously approved but has been paused by Meta due to quality issues; see Templates — Quality
For campaigns, re-launch the campaign once the template is APPROVED. For automations, the automation will resume sending correctly once the template is restored to APPROVED — no re-activation is needed.

Errors not listed above

If the error reason on a failed message does not match any of the above, it is typically a Meta API error code that Galantis surfaces directly. These are less common and often transient:
  • Transient network or API errors — Meta API errors with a 5xx code or a TEMPORARY_FAILURE indicator. These typically self-resolve — if the automation or campaign retried the send, check whether subsequent attempts succeeded.
  • Recipient phone number not on WhatsApp — The customer’s phone number is valid internationally but is not registered on WhatsApp. This is a data quality issue — the customer cannot be reached on WhatsApp at this number.
  • Rate limit exceeded — The phone number’s per-period message throughput limit was reached. High-volume campaigns can hit this limit. The send will typically recover in the next batch cycle as the rate limit window resets.
For any persistent error not covered here, capture the specific error code from the failed message detail and open a support ticket via the in-app chat. Include the Nightwatch log link for the relevant send job. See Debugging for how to find and share the relevant trace.

Checking a customer’s delivery eligibility

Before investigating a delivery failure in depth, a quick eligibility check on the customer’s profile often identifies the root cause immediately:
1

Open the contact profile

Go to Audience → Contacts and search for the customer whose message failed.
2

Check marketing_state

Confirm marketing_state = SUBSCRIBED. Any other state means the customer cannot receive campaign or automation messages.
3

Check phone number fields

Confirm phone, phone_country_code, and phone_calling_code are all populated and correctly formatted. A missing phone_calling_code is the cause of CUSTOMER_IS_MISSING_CALLING_CODE failures.
4

Check message history

Review the customer’s recent message history on their profile. If the last outbound message shows FAILED, the error reason is visible there without needing to open the campaign or automation detail.