---slug: /guides/how-to-troubleshoot-common-messaging-issuessidebar_position: 6sidebar_label: Troubleshooting---# Troubleshooting Messaging IssuesMessaging is an ever-changing ecosystem, and resolving issues can be tricky.This guide will go over all the common errors that we see and how you can goabout quickly resolving them.:::info Still need help?If these steps to resolve your issue do not help, SignalWire Support caninvestigate what went wrong with our carrier peers.Please open a support request from the top navbar of your Dashboard and include a minimum of 3 or more message SIDsthat were flagged with the relevant error. **Per our carrier peersrequirements, these SIDs MUST be from the last 24 hours.**:::## List of errors- [21717 - From must belong to an active campaign](#21717)- [30001 - Exceeded Validity Period](#30001)- [30003 - Unreachable Destination Handset](#30003)- [30004 - Carrier Responded as Undeliverable – Opt Out](#30004)- [30005 - Unknown Destination Handset](#30005)- [30006 - Landline or Unreachable Carrier](#30006)- [30007 - Message Marked as Spam](#30007)- [30008 - Unknown Error](#30008)- [30022 - Campaign Registry Throughput Limits Exceeded](#30022)### 21717 - From must belong to an active campaign {#21717}Error 21717 means that you are trying to send a message from a 10DLC number thatis not currently associated with an active messaging campaign. Beginning onMarch 1st 2022, all 10DLC SMS traffic must be registered with a messagingcampaign. You can create a campaign from the [MessagingCampaigns](/guides/navigating-your-space#messaging-campaigns) section of yourSignalWire space. To learn more about The Campaign Registry, you can referenceour documentation[here](../getting-started/campaign-registry/campaign-registry-all-you-need-to-know.mdx).### 30001 - Exceeded Validity Period {#30001}If you receive error code 30001, it means that the message sent to SignalWirewas correctly placed in the queue for sending. However, upon reaching its turnto be sent, the validity period specified in the ValidityPeriod parameter wasexpired and the message was no longer valid, so the sending failed. Note that ifthe ValidityPeriod parameter is not set upon creating a message, it willdefault to a value of 14400 seconds, or 4 hours.The most common reason for this error is sending to SignalWire messages at arate that is faster than the number of messages per second the From phonenumber can deliver at. Another possible reason is having set theValidityPeriod parameter to a very low value, such as 5 seconds.#### Steps to Resolve- Can you limit the rate at which messages are being sent to SignalWire, so that it matches or is lower than the maximum messages per second that the sender phone number can deliver?- Are you setting the ValidityPeriod parameter upon creation of a message? If not, consider setting this parameter for a longer than default value.### 30003 - Unreachable Destination Handset {#30003}If you receive error code 30003, this means that the delivery of your messagefailed as the destination handset you are trying to reach is switched off or notavailable.There are a number of possible reasons for this error:- Destination handset intended to be reached isnt on or isnt available.- Device/destination handsets signal isnt sufficient enough- Destination handset/device isnt capable of receiving SMS, such as a landline number- Mobile carrier has an issue#### Steps to Resolve- Is the destination headset/device on?- Is there a sufficient signal on the destination headset/device? Try powering off, wait 30 seconds, then power back on- Is the destination device connected to the main carrier network? Message delivery cannot be guaranteed on devices that are roaming off-network.- Can SMS from regular cell phones be received on the device?- Try sending a message from another SignalWire number or with a shorter one-segment body.- Can other devices on the same mobile carrier receive messages?- If you are on long code, are you following all carrier regulations? This can occasionally be caused due to carrier filtering.:::info Short CodeWhen this error is received on short codes, the cause can be due to therecipients wireless plan not supporting shortcode (or Premium) messages.:::### 30004 - Carrier Responded as Undeliverable – Opt Out {#30004}This error indicates that the message was not delivered because the recipient previously opted out of receiving messages, usually with a STOP reply.#### Steps to ResolveIf the recipient opted out by mistake, advise them to send an unstop message to the sending number. If the recipient did opt out, remove the number from your subscriber list to avoid this error going forward.### 30005 - Unknown Destination Handset {#30005}If you tried to send out messaging and received error code 30005, this meansthat when the carrier attempted to deliver your message to the handset, itfailed due to an inactive or unknown destination number. It could be that thephone number is no longer in service or is not recognized as owned by anycarrier.#### Steps to ResolveThe first step is to check if the To number is valid and has active mobileservice at this time. It may be helpful to check when the user opted into yourservices to see if there is any chance the phone may now be inactive. If you areable to confirm this is a correct and valid number, try the following steps:- Is the device able to receive SMS from regular cell phones as opposed to VOIP phones?- Is the device able to receive text messages from toll-free numbers (if you are sending on toll-free)?- Is the device able to receive messages from other SignalWire numbers?- Is the device able to receive a one-segment message?- Is the device connected to the home carriers network and does it have sufficient signal?### 30006 - Landline or Unreachable Carrier {#30006}If you received error code 30006, this means that the destination handset youwere trying to reach was determined by the carriers to be either a landline or anumber owned by an unreachable carrier.#### Steps to ResolveYou can use the [Phone Number Lookup API](https://docs.signalwire.com/topics/relay-rest/#resources-phone-number-lookup)in order to verify if the destination number is a landline or what theassociated carrier may be. In most cases, it is best to remove these numbersfrom your sending lists as they are categorized as unreachable.### 30007 - Message Marked as Spam {#30007}Error code 30007 means that you were flagged as spam by not following the rulesset forth for messaging. This could be a flag from SignalWire or from theupstream carriers for violating regulations.#### Steps to Resolve- The first step is to review [best practices for messaging](/guides/sms-best-practices-how-to-ensure-message-delivery) and make sure that you are following **all** of these rules.- The second step is to ensure that if you are messaging from local long code numbers, you are registered with [The Campaign Registry](../getting-started/campaign-registry/campaign-registry-all-you-need-to-know.mdx) and following all their rules.- If you believe that your messages are following all of the above rules and you are still being flagged, you can reach out to our support team with examples. They can help determine if an error was made or assist in correcting your messaging where needed.### 30008 - Unknown Error {#30008}Error code 30008 happens when the carriers do not give us any details or reasonfor failure leaving it only as failed for unknown reasons.#### Steps to Resolve- Check that the receiving phone is turned on and can receive non-SignalWire SMS- Ensure that the phone is not roaming off the network. Message delivery cannot be guaranteed on roaming phones.- Try sending to other phones who have the same mobile carrier. If messages to other phones are delivered, the issue is likely device-related. Try rebooting the device or contact the mobile carrier for help.- If the recipient number is another SignalWire number, ensure that number has an action configured for its Messaging capabilities. Make sure that each number has a webhook or application set up to handle inbound messaging.- Try sending a shorter message to the phone that has simple content and does not include any special characters. This would give our support team an idea as to whether the failure is related to concatenation or character encoding.### 30022 - Campaign Registry Throughput Limits Exceeded {#30022}Error 30022 means that you have exceeded your limits as dictated by the CampaignRegistry, or your message has been flagged as spam. Please refer to the max throughput per minute you wereassigned by AT&T or the daily limit for T-Mobile.#### Steps to ResolveUse the [Phone Number Lookup API](pathname:///rest/phone-number-lookup/) to determine the carrier of the failed message.If its T-Mobile:- Review your approved daily message segment limit set by T-Mobile.- SignalWire does not track this daily limit, so messages are not blocked when your limit is exceeded.- Ensure when sending out that you are not surpassing that limit to T-Mobile numbers each day to avoid getting blocked again.- If your campaign has not reached its daily limit, please refer to our guide on [SMS Best Practices](./sms-best-practices-how-to-ensure-message-delivery.mdx) to avoid messages being flagged as spam.If its AT&T:- Review your approved message segment per second/minute limit set by AT&T.- Ensure that in future sends, all numbers in the campaign are not sending more than the total segments per minute. For example, if you are sending a 1 segment message from 4 numbers and you have 240 Segments per Minute approved, each number may send at no more than 60 messages per minute.- **SignalWire throttles messages to AT&T for you according to your limit**, so this error is more likely caused by the message being flagged as spam. Please refer to our guide on [SMS Best Practices](./sms-best-practices-how-to-ensure-message-delivery.mdx) to avoid repeat spam flags.