Bolt integration

Twilio SMS Messages Not Sending from Bolt App

Your Bolt.new application uses Twilio for SMS notifications (verification codes, order updates, appointment reminders) but messages are never delivered. The API calls appear to succeed, or they fail with cryptic error codes, and users never receive the SMS on their phones.

SMS is often used for critical user flows like two-factor authentication and order notifications. When it fails, users can't verify their phone numbers, miss important updates, or can't complete checkout processes that require SMS verification. Unlike email, there's no spam folder to check - the message either arrives or it doesn't.

Twilio has strict compliance requirements, number formatting rules, and sender registration requirements that Bolt's AI-generated code often doesn't account for. A message that works when testing with your own phone may fail when sending to other numbers, carriers, or countries.

Error Messages You Might See

Error 20003: Authentication error - invalid credentials Error 21211: Invalid 'To' phone number Error 21608: The 'from' phone number is not a valid SMS-capable number Error 21610: Message cannot be sent to unsubscribed recipient Error 30007: Message delivery - carrier violation Error 63018: A2P 10DLC - Campaign not registered
Error 20003: Authentication error - invalid credentialsError 21211: Invalid 'To' phone numberError 21608: The 'from' phone number is not a valid SMS-capable numberError 21610: Message cannot be sent to unsubscribed recipientError 30007: Message delivery - carrier violationError 63018: A2P 10DLC - Campaign not registered

Common Causes

  • Trial account limitations — Twilio trial accounts can only send to verified phone numbers, silently failing for all other recipients
  • Invalid phone number format — Numbers not in E.164 format (+1234567890) cause immediate failures or delivery to wrong numbers
  • Twilio credentials on client side — Account SID and Auth Token placed in frontend code where they can't authenticate (and are exposed publicly)
  • Unregistered sender ID — In the US, A2P 10DLC registration is required for application-to-person messaging; unregistered numbers get filtered
  • Message content filtered — SMS contains URLs or keywords that carrier spam filters block
  • Wrong Twilio phone number — The 'from' number is not a Twilio number you own, or it's not SMS-capable

How to Fix It

  1. Upgrade from trial — Twilio trial accounts can only send to verified numbers. Upgrade to a paid account to send to any phone number
  2. Format numbers correctly — Always use E.164 format: const formattedNumber = `+${countryCode}${phoneNumber.replace(/\D/g, '')}` and use Twilio's Lookup API to validate numbers before sending
  3. Keep credentials server-side — Never put Twilio credentials in frontend code. Create an API route: const client = twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN)
  4. Register for A2P 10DLC — In Twilio console, register your brand and campaign under Messaging > Compliance to ensure delivery in the US
  5. Check message logs — In Twilio console, go to Monitor > Logs > Messages to see delivery status and error codes for every message attempt
  6. Handle errors in code — Wrap Twilio calls in try-catch: try { const message = await client.messages.create({...}); } catch (err) { console.error('SMS Error:', err.code, err.message); }

Real developers can help you.

Jaime Orts-Caroff Jaime Orts-Caroff I'm a Senior Android developer, open to work in various fields Vlad Temian Vlad Temian 15+ years shipping production infrastructure for startups. Former CTO at qed.builders (acquired by The Sandbox). Cursor ambassador and agentic tooling builder. I've scaled systems, automated deployments, and built observability tools for AI coding workflows. I specialize in taking vibe-coded apps from broken prototype to production-ready: fixing Supabase auth/RLS, Stripe integrations, deployment pipelines, and cleaning up AI-generated spaghetti. I build tools in this space (agentprobe, claudebin, micode) and understand both sides: how AI generates code and why it breaks. https://blog.vtemian.com/ Victor Denisov Victor Denisov Developer Pratik Pratik SWE with 15+ years of experience building and maintaining web apps and extensive BE infrastructure Luca Liberati Luca Liberati I work on monoliths and microservices, backends and frontends, manage K8s clusters and love to design apps architecture PawelPloszaj PawelPloszaj I'm fronted developer with 10+ years of experience with big projects. I have small backend background too Basel Issmail Basel Issmail ’m a Senior Full-Stack Developer and Tech Lead with experience designing and building scalable web platforms. I work across the full development lifecycle, from translating business requirements into technical architecture to delivering reliable production systems. My work focuses on modern web technologies, including TypeScript, Angular, Node.js, and cloud-based architectures. I enjoy solving complex technical problems and helping teams turn product ideas and prototypes into working platforms that can grow and scale. In addition to development, I often collaborate closely with product managers, business analysts, designers, and QA teams to ensure that solutions align with both technical and business goals. I enjoy working with startups and product teams where I can contribute both as a hands-on engineer and as a technical partner in designing and delivering impactful software. David Olverson David Olverson Solo dev shipping production apps with AI-assisted development. I specialize in rescuing broken Lovable/Bolt/Cursor builds and taking them to production. 10+ apps shipped including SaaS CRMs, gaming platforms, real estate tools, and Discord bots. Stack: Next.js 16, TypeScript, Tailwind CSS, FastAPI, PostgreSQL, Prisma. I use Claude Code with 50+ custom skills for rapid delivery. Average turnaround: 2-4 weeks from broken prototype to production. Franck Plazanet Franck Plazanet I am a Strategic Engineering Leader with over 8 years of experience building high-availability enterprise systems and scaling high-performing technical teams. My focus is on bridging the gap between complex technology and business growth. Core Expertise: 🚀 Leadership: Managing and coaching teams of 15+ engineers, fostering a culture of accountability and continuous improvement. 🏗️ Architecture: Enterprise Core Systems, Multi-system Integration (ERP/API/ETL), and Core Database Structure. ☁️ Cloud & Scale: AWS Expert; architected systems handling 10B+ monthly requests and managing 100k+ SKUs. 📈 Business Impact: Aligning tech strategy with P&L goals to drive $70k+ in monthly recurring revenue. I thrive on "out-of-the-box" thinking to solve complex technical bottlenecks and am always looking for ways to use automation to improve business productivity. Dor Yaloz Dor Yaloz SW engineer with 6+ years of experience, I worked with React/Node/Python did projects with React+Capacitor.js for ios Supabase expert

You don't need to be technical. Just describe what's wrong and a verified developer will handle the rest.

Get Help

Frequently Asked Questions

Why can I send SMS to my phone but not to other numbers?

You're on a Twilio trial account, which can only send messages to phone numbers you've verified in the Twilio console. Upgrade to a paid account (minimum $20 credit) to send to any phone number.

What is A2P 10DLC and do I need it?

A2P 10DLC (Application-to-Person 10-Digit Long Code) is a US carrier requirement for businesses sending SMS from standard phone numbers. Without registration, your messages may be silently filtered. Register in Twilio console under Messaging > Compliance > Registration.

Related Bolt Issues

Can't fix it yourself?
Real developers can help.

You don't need to be technical. Just describe what's wrong and a verified developer will handle the rest.

Get Help