30610: Message couldn't be delivered
MESSAGING
ERROR
This error occurs when Compliance Toolkit blocks a non-essential outbound message because the send attempt falls inside Quiet Hours for the recipient's local time. Quiet Hours enforcement uses the recipient's phone number area code by default and can use ZIP code data from Contact API when you provide it. Twilio returns 30610 when Quiet Hours handling is set to Block instead of rescheduling the message for a later delivery time.
- The message was sent during Quiet Hours for the recipient's local time. In the US, Compliance Toolkit checks federal TCPA quiet hours from 9:00 PM to 8:00 AM and can also enforce state-specific quiet hours in supported states.
- Compliance Toolkit classified the message as non-essential based on the message content and context.
- You set
messageIntentto a non-essential use case such asmarketing,events,education,polling, orannouncements, which keeps Quiet Hours enforcement in place. - Quiet Hours handling for Compliance Toolkit is configured as
Blockinstead of the defaultReschedulebehavior. - The recipient's local time was inferred from the phone number area code, or from ZIP code data you supplied through Contact API, and that location placed the send attempt inside a restricted window.
- Send the message outside the recipient's local Quiet Hours window. For planned campaigns, schedule delivery for an allowed time instead of sending immediately.
- Change Compliance Toolkit Quiet Hours handling from
BlocktoRescheduleif you want Twilio to deliver non-essential messages automatically after Quiet Hours end. - Set
messageIntentexplicitly for each message so Compliance Toolkit uses your intended use case. Essential values such asotp,notifications,fraud,security,customercare, anddeliveryare exempt from Quiet Hours checks. - Provide the recipient's ZIP code through Contact API when the phone number area code does not reflect the recipient's current location. This improves Quiet Hours accuracy.
- If you are building your own send timing workflow, create a scheduled message with
ScheduleTypeandSendAtso the message is queued for a future delivery time.