You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Twilio发送短信时遭遇‘accountSid must start with AC’错误的求助(已确认Account SID以AC开头)

解决Twilio "accountSid must start with AC" 错误的排查步骤

我之前也碰到过一模一样的问题,别着急,这个错误大概率不是你SID本身的问题,而是环境变量没有被正确加载导致的,咱们一步步来排查:

1. 修正.env文件的格式问题

你的.env文件里加了分号和引号,这会导致dotenv读取的值不符合Twilio的要求:

// 错误格式(带分号和引号)
TWILIO_ACCOUNT_SID="ACa6213af064b**************";
TWILIO_TOKEN="b5e1f89ed92c7c5****************";
NUMBER="+91783******";

改成标准的.env格式(去掉引号和分号):

// 正确格式
TWILIO_ACCOUNT_SID=ACa6213af064b**************
TWILIO_TOKEN=b5e1f89ed92c7c5****************
NUMBER=+91783******

解释:dotenv会把引号和分号都当成变量值的一部分,导致最终accountSid变成了"ACxxxx";,Twilio验证自然会认为开头不是AC。

2. 验证环境变量是否正确加载

在代码里添加一行打印,确认变量读取是否正常:

require("dotenv").config();
// 新增打印,检查SID是否正确加载
console.log("Account SID loaded:", process.env.TWILIO_ACCOUNT_SID);

const express = require("express");
// ... 其他代码

如果打印出来的内容带引号或分号,就说明.env格式的问题还没解决;如果是空值,那可能是dotenv没找到.env文件(确保文件放在项目根目录,命名为.env)。

3. 确保dotenv加载时机正确

把require("dotenv").config();放在代码的最顶部,保证所有后续的process.env调用都能读到变量:

// 放在最开头,优先加载环境变量
require("dotenv").config();

const express = require("express");
const app = express();
const PORT = 3000;

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_TOKEN;
// ... 其他代码

4. 排查是否有环境变量覆盖

有时候系统环境变量里的同名变量会覆盖.env文件的内容,可以打印所有环境变量来确认:

console.log("All env vars:", process.env);

检查输出里的TWILIO_ACCOUNT_SID是否是你预期的值。

按上面的步骤调整后,再运行代码应该就能解决这个错误了。

内容的提问来源于stack exchange,提问作者kashif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 15:22:40