Outcomes and what to do

Every send ends with a status of success or failure, a numeric reason_code and a text reason. They arrive on the status webhooks and on callback_url. See Results of your sends.

Branch on reason_code, not on reason. The text can be reworded; the number can't.

Retry? means:

  • Yes: resend now.
  • Later: resend after some time passes.
  • After fixing: change something first. Resending unchanged fails the same way.
  • No: don't resend to this contact on this channel.

Delivered

The send went out. Nothing to do.

Code Reason Retry? What to do
0 Success n/a The voicemail was left, the call was answered, or the text or email was sent.

Mailbox reached but couldn't take a message

The call reached the contact's carrier, but the mailbox couldn't record a voicemail. Retrying won't help until the contact fixes their mailbox. Check what the contact agreed to on Consent, then reach them on another channel they agreed to, such as a text. The proof of delivery recording plays what the mailbox said.

Code Reason Retry? What to do
4001 VoiceMail Not Setup No The contact never set up their mailbox.
4002 VoiceMail Full No The contact's mailbox is full.

Didn't reach the contact

This attempt didn't reach the contact. Unless the row says otherwise, retry later, inside the contact's calling hours and within your contact frequency limit. See Delivery rules.

Code Reason Retry? What to do
4000 VoiceMail Not Detected Later The line answered, but no voicemail greeting was detected. Try another time of day.
4003 Temporarily unreachable Later The contact's number was temporarily unreachable, often because their phone carrier is having network problems. Try again later. If many sends fail this way at once, contact support with a drop_id.
4004 Number not reachable Later The call couldn't connect. If it repeats, check the number with the contact.
4005 No Answer Later Nobody answered.
4006 User Busy Later The line was busy.
4008 Spam detected Later The carrier rejected the call as unwanted, or no audio was detected on the line. Check your caller ID's reputation, or send from another phone line.
4011 TCPA Hours Later A text outside the contact's allowed hours (federal and state-specific calling hours in their time zone). Resend inside the window. Voice sends wait for the window instead.
4012 Timeout Later The call or AI conversation didn't finish in time.
4013 Too Many Attempts Later The number reached your contact frequency limit (default 3 attempts in 3 days), counted across your account. Resend after the window, or change the limit. The webhook's frequency_limit object shows the limit and the count. Test numbers are exempt.
4023 Network Blocked Later The carrier's network blocked the call as unwanted. Check your caller ID's reputation and registration before resending.
4024 Carrier Intercept No The carrier played an intercept message, usually for a disconnected or changed number. Check the number with the contact.
4025 Reached Automated Menu No The call reached an automated menu, not a person or a mailbox.
4026 Call Screening Detected No The call reached a call-screening service.

Number can't be used

The number itself can't take this send. Fix or replace it on the contact; resending to the same number fails the same way.

Code Reason Retry? What to do
3011 Must be E.164 format After fixing A number isn't in E.164 format (+, country code, number). Applies to the recipient and to number fields such as caller_id and transfer_to.
3012 Phone number not valid After fixing The number is too short to be valid, or the contact has no number in the phone_selector slot you named.
4007 Not Mobile No The number isn't a mobile, and mobile_only is on for the send, the campaign or the account. Use a channel that reaches landlines, or turn mobile_only off.
4009 Public Safety Number No The number is an emergency or public-safety number. Remove it from your list.
4019 RND Reassigned No The Reassigned Numbers Database says the number changed hands after the contact's consent. Remove it and ask the contact for their current number. We check the database only when you add your own RND credentials; register with the RND directly to qualify for its safe harbor.
4021 RND Error Later The reassigned-number check, run with your RND credentials, failed for this number. Check the credentials, then retry later; if it repeats, contact support with the drop_id.

Not allowed: stop

You may not contact this person this way. Don't resend and don't work around the block.

Code Reason Retry? What to do
4015 Geographic Region Blocked No The destination country is sanctioned or turned off on your account, or the caller ID or your account location isn't allowed to reach it. If you should be able to reach that country, contact support.
4016 Internal DNC No The number is on your do-not-contact list. Remove it only if the contact asked to hear from you again.
4017 Known Litigator No The number is on a known TCPA litigator list. We check with your own Blacklist Alliance or WebRecon key when you add one on the Integrations page, and with ours otherwise.
6004 Opt-in Flagged No The contact's opt-in was flagged as spam. Don't send until you have a new, documented opt-in.
6005 Opt-in Revoked No The contact revoked consent, for example by replying STOP. Only a new, documented opt-in allows sending again.
6006 Opt-in Pending Later The contact was asked to confirm their opt-in and hasn't confirmed. Resend once they do.
6011 Opt-in Missing After fixing Your account requires consent, and none is on file for this channel. Record the contact's opt-in, then resend. See Consent.

Your account or setup

Something about your account, your registration or the request has to change first. Nothing is wrong with the contact. Fix the cause, then resend with a new Idempotency-Key.

Code Reason Retry? What to do
3000 No Funds After fixing Your balance is empty. Add funds or turn on auto-recharge, then resend.
3001 Audio file not valid After fixing The audio isn't usable: media_id isn't on your account, or audio_url couldn't be downloaded or isn't MP3 or WAV. Upload it with the Media API and send media_id.
3002 No Voice After fixing voice_id isn't valid, text-to-speech has no voice_id, or an AI call has bad voice_ids or voice_rotation.
3003 Campaign Deleted No The campaign was deleted while sending. Create it again if you still want to send.
3004 Not Included in Plan After fixing Your plan doesn't include this product. Change your plan, or use a channel it includes.
3007 Not authorized After fixing The key, secret or token was wrong, expired or missing the scope. Reported on callback_url only. See Authentication.
3008 No api container After fixing Your account's API setup is incomplete. Contact support with the log_id from the callback_url body.
3009 Too many phone numbers After fixing More than 100 phone numbers in one request. Split it.
3010 Nothing to do After fixing phone_numbers was empty.
3013 Invalid IVR or Route After fixing A phone line id isn't valid or isn't yours, or inbound_routing isn't forward or byoc. Use an id from GET /phone/public/lines.
3014 Not allowed audio_url After fixing Your account only allows approved audio, so audio_url is refused. Send a media_id, or tts_body with voice_id.
3015 No TTS After fixing voice_id was sent without tts_body.
3016 BYOC not enabled After fixing The send has a byoc object, but bring-your-own-carrier isn't on for your account. Remove it, or ask support.
3017 Invalid STI After fixing byoc.sti_orig_id isn't a valid UUID.
3018 Invalid Attestation After fixing byoc.sti_attestation isn't A, B or C.
3019 Invalid Callback After fixing callback_url isn't a valid URL. Pass a public http(s) URL, or leave it out.
3020 Missing Parameters After fixing A required field is missing or invalid: a text with no body, template_id or media; a contact_id that isn't yours; a bad phone_selector or digit; or a transfer key without transfer_to.
3021 TTS too long After fixing tts_body is over 1,200 characters, counted after merge fields are filled in. Shorten it.
3022 Not Allowed in Trial After fixing Trial accounts can only send to numbers verified on the account. Send to one, or choose a plan.
3023 US Identity Verification Required After fixing Sending to US numbers needs identity verification on your account. Complete it in the dashboard.
3024 Conversational Number Not Allowed After fixing The line is a conversational number, which only replies in the inbox. Send bulk texts from a line on a registered texting campaign.
3025 Daily Texting Limit Reached Later Your registered texting campaign reached the daily limit the carriers allow it. Resend after midnight Pacific time. Campaign texts don't get this code: the campaign holds the rest of its contacts and resumes at 9 a.m. Pacific the next day.
3027 Idempotency Key Conflict After fixing The Idempotency-Key was used in the last 24 hours with a different body or route. Use a new key for each new request.
3028 Invalid Idempotency Key After fixing Idempotency-Key isn't 1 to 255 printable ASCII characters. A random UUID works.
3029 Phone Line Has No SMS Campaign After fixing The phone_line_id has no registered texting campaign. Attach the line to an approved campaign, or use another line.
3030 Invalid Transfer IVR After fixing transfer_ivr_id isn't valid. Use a phone line id from GET /phone/public/lines.
3031 Transfer Destination Missing After fixing A transfer key was set with nowhere to transfer to. Add transfer_ivr_id or transfer_to.
3032 Invalid Media After fixing Bad media_urls or media_ids, more than 10 files, media with template_id, or media on a voice route.
3033 Media Not Found After fixing A media_id isn't on your account, was deleted, or has no uploaded file.
3034 Media Fetch Failed Later A media URL didn't answer 200 in time, or redirected. Host it at a public https URL.
3035 Media Too Large After fixing A file is over 1 MiB, or the files total over 5 MiB.
3036 Unsupported Media Type After fixing A file isn't JPEG, PNG, GIF, WAV or MP3, judged by its bytes.
3037 Media Blocked by Malware Scan No The malware scan flagged a file. Don't resend it.
3038 Media Scan Pending Later The malware scan didn't finish in time. A retry reuses the finished scan.
3039 Media Scan Failed Later The malware scan failed. The file may be fine; retry.
3999 Other After fixing reason names the cause, for example No Agent, Agent Is Draft, Agent Not Active, No Template or Identity Not Verified. Fix it and resend. If reason doesn't say what to change, contact support with the drop_id.
4010 No Caller ID After fixing No phone line to call from. The send named no phone_line_id and your account has no default phone line. Pass phone_line_id, or set a default line. Bring-your-own-carrier accounts can pass caller_id instead.
5000 Account Inactive After fixing Your account is cancelled, frozen or paused, which stops every channel. Contact support to restore access.
5001 Payment Required After fixing A subscription payment failed and the grace period passed, which stops every channel. Update your card, then resend.
5002 Trial Expired After fixing The trial period ended with no paid plan, which stops every channel. Choose a plan, then resend.
6000 Carrier Denied Use Case After fixing The carriers rejected your texting campaign's use case. Change the registration.
6001 Carrier Suspension After fixing The carriers suspended your texting campaign. Contact support before sending more.
6002 Pool Suspended After fixing Your number pool is suspended. Contact support.
6003 Pool Not Ready Later Your number pool is still waiting for carrier approval, or wasn't found. Resend once it's approved.
6007 Must Use Number Pool After fixing This send must go out from your number pool. For a byoc send, add caller_id or pool_id.
6008 Must Use Compliant Number Pool After fixing Your number pool has no opt-in confirmation message. Contact support to switch to a number pool that has one.
6009 Unregistered Brand After fixing Your account requires a registered brand, and the send had no valid brand_id. Pass one from GET /automation/public/brands, or register a brand.

Email-specific

These codes apply to email only. See Email.

Code Reason Retry? What to do
5003 Not Entitled After fixing Your plan doesn't include email.
5005 Missing From Address After fixing No from address. Pass mailbox_id or from.
5006 Invalid From Address Format After fixing The from address isn't a valid email address.
5007 Sending Domain Not Found After fixing The from domain isn't one of your sending domains. Add and verify it.
5008 From Domain Mismatch After fixing The from address isn't on the sending domain.
5009 Domain Not Owned By Team After fixing The sending domain belongs to another account.
5010 Sending Domain Not Provisioned After fixing The sending domain's DNS records aren't verified. Finish the DNS setup.
5011 Sending Domain Not Verified With Provider After fixing The email provider hasn't verified the sending domain. Finish verifying it.
5012 Trial Daily Send Limit Exceeded Later The trial daily email limit is reached. Wait a day, or choose a plan.
5013 Daily Send Limit Exceeded Later Your daily email limit is reached. Wait a day, or ask support to raise it.
5014 Recipient On Do-Not-Contact List No The address is on your do-not-contact list.
5015 Recipient Opted Out Of Email No The contact opted out of email.
5016 Contact Not Found After fixing Your account requires email consent, and contact_id doesn't match a contact. Fix contact_id.
5017 No Email Consent On File After fixing Your account requires email consent, and the contact has none on file. Record it, then resend.
5019 Frequency Cap Exceeded (Bulk) Later The contact reached your bulk email frequency cap. Wait, or change the cap.
5020 Frequency Cap Exceeded (Transactional) Later The contact reached your transactional email frequency cap. Wait, or change the cap.
5030 Hard Bounce No The address bounced permanently and is now suppressed. Ask the contact for a new address.
5031 Soft Bounce Later The address bounced for a temporary reason.
5032 Spam Complaint No The recipient marked the email as spam and is now suppressed.

Temporary problem on our end

Something failed while handling the send. Retry. If the same code keeps coming back, contact support with the id named below.

Code Reason Retry? What to do
3026 Daily Texting Limit Unavailable Later We couldn't check your texting campaign's daily limit, so the text wasn't sent. Retry.
5018 Consent Lookup Error Yes Email consent couldn't be checked. Retry; if it repeats, contact support with the email_id.
5021 Frequency Cap Lookup Error Yes The email frequency cap couldn't be checked. Retry; if it repeats, contact support with the email_id.
5022 Send Error Yes The email provider failed the send. Retry; if it repeats, contact support with the email_id.

Other codes

1000 (Pending) marks an attempt that isn't finished. Results never carry it.

Codes 3005, 3006, 4014, 4018, 4020, 4022, 4027, 5004 and 6010 are reserved and aren't returned.


While Drop Cowboy provides tools to support compliance efforts, customers remain solely responsible for obtaining proper consent, maintaining opt-out lists, and complying with all federal and state telemarketing regulations. Consult with your legal counsel to ensure your specific use case and consent mechanisms comply with applicable laws.