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

部署Twilio服务至Heroku时遇11200错误求助

排查Twilio 11200错误(Heroku部署后)

这个错误的核心是Twilio无法成功请求你的webhook URL,结合你本地正常、Heroku部署后出问题的情况,咱们从最常见的原因开始一步步排查:

  • 确认Heroku应用是否正常运行
    首先检查你的Heroku dyno有没有启动,以及应用是否监听了正确的端口。Node.js应用在Heroku上必须监听process.env.PORT环境变量指定的端口,不能硬编码成3000这类固定值。比如你的Express代码应该是:

    const port = process.env.PORT || 3000;
    app.listen(port, () => {
      console.log(`Server running on port ${port}`);
    });
    

    然后用Heroku CLI查看应用日志,确认启动状态:

    heroku logs --tail
    

    如果看到启动失败的报错(比如端口占用、依赖缺失),先解决这些问题。也可以用heroku ps查看dyno状态,要是显示web.1: idle,就用heroku ps:scale web=1启动dyno。

  • 验证webhook URL的正确性与可访问性
    Twilio要求webhook必须是HTTPS协议(本地开发用ngrok的HTTP除外),确认你在Twilio控制台填写的是https://xxx.herokuapp.com/xxx(加上你的具体路由,比如/twilio/webhook),而不是HTTP开头。
    另外,直接用curl测试你的webhook路由是否能正常响应:

    curl -X POST https://xxx.herokuapp.com/你的webhook路由
    

    如果返回404,说明路由配置有问题;如果返回5xx,说明服务器内部错误,需要看日志排查。

  • 检查Heroku dyno的冷启动问题
    Heroku的免费dyno会在30分钟无请求后进入休眠状态,第一次请求会触发冷启动,启动时间可能超过Twilio的超时限制(Twilio默认超时是15秒),导致11200错误。
    解决办法:可以用第三方服务定时ping你的Heroku应用(比如每25分钟ping一次),或者升级到付费dyno避免休眠。

  • 确认路由能处理Twilio的POST请求
    Twilio向webhook发送的是POST请求,确保你的Node.js路由正确处理POST方法,比如Express中要用app.post('/webhook', ...)而不是app.get。另外,不要给这个路由加过于严格的CORS限制(Twilio的请求是服务器端发起的,CORS一般不影响,但如果你的中间件限制了来源,可能会拦截请求)。

  • 排除SSL证书问题
    Heroku的默认域名(xxx.herokuapp.com)自带合法的SSL证书,Twilio会信任这个证书。如果用了自定义域名,要确保SSL证书配置正确(比如用Heroku的SSL证书或第三方合法证书),Twilio不接受自签名证书。

如果以上步骤都排查完还是有问题,可以把Heroku日志里的相关报错信息贴出来,方便进一步定位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:25:09