Skip to content

Why a message did not send

Gro checks each message right before it hands it to the carrier or mail provider. When a check fails, the message is marked Failed with a reason you can read on the campaign’s recipients tab, the profile’s message history, or the flow’s execution log. Nothing is retried silently.

ReasonWhat it means
Safe hoursMarketing SMS outside your safe hours or the customer’s legal quiet hours. It waits and sends when the window opens. See Safe hours and quiet hours.
Reason shownWhat it meansWhat to do
SMS sender registration is not activeNo approved sender for this account, or for the customer’s country.Finish setup under Settings > SMS. See Setting up SMS.
Transactional copy has not been approvedThe flow step or template is marked transactional and the current copy is pending or rejected.Wait for approval, or untick Transactional to send it as marketing. Editing the copy restarts the review.
Campaigns cannot use a transactional templateThe campaign is attached to a template flagged transactional.Pick a marketing template. Campaigns are always marketing.
Profile is not subscribedThe customer has unsubscribed or was never opted in on this channel.Nothing. This is the customer’s choice.
Profile has no phone numberSMS with nowhere to go.Add a number in international format, or let Shopify sync it.
Cannot normalise phoneThe number could not be turned into international format.Fix the number on the profile.
Carrier or provider errorThe carrier rejected it (bad number, filtered, sender not allowed).Check the number and your sender. Repeated failures usually mean a registration issue.

The same checks run for every path: campaigns, flows, test sends and resumed sends. A message that was queued before a check would have failed is still stopped at delivery time, so changing a template’s copy or unticking Transactional takes effect on everything still in the queue.