
What does "landline or unreachable carrier" mean?
Twilio returns error 30006 when the carrier at the other end won't take your text. Usually the number is a landline. Less often you sent from a short code that the person's carrier doesn't connect to.
Twilio doesn't refuse landlines up front, because a few of them can take texts. Some businesses add texting to their main office number, so in the US, Canada and the UK Twilio tries the send in case yours is one of them. When it isn't, the carrier says no, and you get 30006.
Owners on a skip-traced list rarely have one of those. Read 30006 as "this is a home phone" unless you know otherwise.
Why your tool might show a different code
Many texting tools run on Twilio underneath, so its numbered codes show up there too. GoHighLevel lists them in its own help center.
You may also see 21635, "'To' number cannot be a landline". Twilio returns it in countries where it doesn't try landlines at all, so the text never goes out. Same cause, same fix.
Six reasons a text to your list fails
Here they are in the order you're likely to hit them on a skip-traced list. The first three are problems with the list. The last three are problems with how you send.
- 1. It's a landline
- Error 30006 or 21635. Skip traces mix home phones in with mobiles, often in the same row, and nothing in the number itself tells you which is which.
- 2. The number can't exist
- Error 21211, "Invalid 'To' phone number". A digit dropped from a hand-typed form, an extension glued to the end, a number in an exchange no carrier holds. It fails before it leaves your tool.
- 3. It's a VoIP line with no texting
- Some internet phone numbers live in an app that shows texts. Others ring a desk phone that never had texting switched on. The number alone won't tell you.
- 4. The phone is off or out of service
- Error 30003 means the handset can't be reached right now. Error 30005 means the carrier doesn't know the number at all, which usually means it was disconnected.
- 5. The carrier filtered it
- Error 30007 means the carrier read the text as spam. Error 30034 means your sending number isn't registered for business texting (10DLC), and US carriers block that traffic.
- 6. They replied STOP
- Error 21610. The person opted out of texts from your number, and your tool won't send to them again until they opt back in.
Which errors a clean list fixes, and which it doesn't
This is the table worth bookmarking. A line-type check takes care of the top three rows before you send. It can't touch the bottom four, whatever a list-cleaning tool (ours included) might like you to believe.
| Error | What it says | Fixed by cleaning the list? | What to do |
|---|---|---|---|
| 30006 | Landline or unreachable carrier | Yes, for landlines | Call the number |
| 21635 | 'To' number cannot be a landline | Yes | Call the number |
| 21211 | Invalid 'To' phone number | Yes | Fix the typo or drop it |
| 30005 | Unknown destination handset | Partly | Drop it if it fails twice |
| 30003 | Unreachable destination handset | No | Try again another day |
| 30007 | Message filtered | No | Change the wording and links |
| 30034 | Message from an unregistered number | No | Register your brand and campaign |
| 21610 | Attempt to send to unsubscribed recipient | No | Leave them off |
30005 is only a partial yes. A number that can't exist comes back invalid from a check. A line cut off last month can still sit with its carrier and come back valid, and you'll only find out when the text bounces.
Four numbers from one send, traced back
Four numbers from one campaign, made up for this example. Next to each: what the texting tool reported, and what a line-type check says about the same number.
| Number | What your tool said | What a check finds | Next send |
|---|---|---|---|
| (602) 555-0114 | Delivered | Mobile, textable | Text it |
| (602) 555-0127 | 30006 Landline or unreachable carrier | Landline, callable | Call it |
| (602) 555-014 | 21211 Invalid 'To' phone number | Invalid: a digit is missing | Fix it or drop it |
| (602) 555-0162 | 21610 Unsubscribed recipient | Mobile, textable | Leave it off |
Three failures. A check before the send would have caught two of them.
The third is a working mobile whose owner said stop. No lookup knows that. Your texting tool's opt-out list does, and it should stay the last word.
How to stop error 30006 before your next send
Run the check on the list itself, on the day you send. A line-type column your data provider filled in months ago is a guess by now, because people move numbers between home, mobile and internet phone services and keep every digit.
Step 1
Export the list with every phone column
Keep it the way your skip trace gave it: one row per owner, Phone 1 to Phone 5 in their own columns. If it's an Excel file, use Save As and pick CSV.
Step 2
Upload it and check the phone columns
We spot the phone columns and tick them for you. Make sure none are missing.

Step 3
Look at the cost before anything runs
Each different number is charged once, even if it appears in three rows. Repeats, blanks and badly formatted numbers are free, and anything that comes back unknown is refunded when the list finishes.

Step 4
Text the mobiles, call the rest
Download "For texting" (texting.csv) into your texting tool and "For calling" (calling.csv) into your dialer. Owners with no working number are in removed.csv, ready to trace again.

Four mistakes that keep 30006 coming back
- Resending to the same numbers
- Twilio's own advice is not to retry a text to a landline. The second send fails exactly like the first.
- Deleting the landlines
- An owner who never answers a text might still pick up the house phone. Move landlines to the dialer instead of throwing away a number you paid to find.
- Trusting the line type that came with the data
- It was right when it was compiled. Numbers change hands and change type, so check them close to the send.
- Blaming the list for 30007 or 30034
- Those come from the carrier's spam filter and from registration. A perfectly clean list still fails if your sending number isn't registered.
What a line-type check won't catch
A check tells you what kind of line a number is and whether it can exist. It won't tell you that a mobile was switched off last week, that the number now belongs to someone else, or that you have permission to text it.
Consent and Do Not Call are still your job.
Sources
- Twilio: error 30006, Landline or unreachable carrier
- Twilio: error 21635, 'To' number cannot be a landline
- Twilio: error 21211, Invalid 'To' phone number
- Twilio: error 30003, Unreachable destination handset
- Twilio: error 30005, Unknown destination handset
- Twilio: error 30007, Message filtered
- Twilio: error 30034, Message from an unregistered number
- Twilio: error 21610, Attempt to send to unsubscribed recipient
- GoHighLevel: common unsuccessful SMS errors