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

AWS Cognito向新加坡号码发送短信报错Unknown error如何解决

针对Cognito触发MFA短信报错"Unknown error attempting to reach phone"的解决方案

以下是已验证可解决该类问题的排查步骤:

  • 首先确认SNS沙箱状态
    如果你尚未将SNS从沙箱模式升级为生产模式,仅能向你预先在SNS控制台验证过的手机号发送短信。手动调用接口测试时用的多为已验证号码,而Cognito触发MFA时使用的用户手机号如果未加入SNS验证列表,就会触发该报错。可前往SNS控制台的「移动」-「文本消息(SMS)」页面确认沙箱状态,升级为生产模式即可解除该限制。
  • 验证用户手机号格式合规性
    Cognito向SNS/Pinpoint推送短信请求时,要求用户的手机号属性必须符合E.164格式,即必须以+加国家码开头,例如新加坡本地手机号为+65xxxxxxxx,中国手机号为+86xxxxxxxxxxx。手动调用发送接口时大概率会主动补全号码前缀,而Cognito侧存储的用户手机号如果缺失前缀、格式不符合要求,就会导致发送失败。
  • 检查Cognito SMS服务角色权限
    Cognito触发短信调用的是用户池SMS配置中绑定的专属服务角色,和手动调用接口时用的身份权限完全独立。需要确认该角色的权限策略中包含sns:Publish操作的允许规则,且资源范围覆盖新加坡区域(ap-southeast-1)的SNS资源。
  • 排查始发号的国际发送权限
    美加地区的普通10DLC号码、免费号码默认仅支持向美加本地手机号发送短信,向其他国家/地区发送需要提前向AWS申请开通对应国家的国际短信发送权限。你可以前往Pinpoint控制台的「设置」-「短信和语音」-「国家/地区」页面,确认需要发送的目标国家是否已开通,且美加始发号支持向该国家发送。
    针对新加坡区域部署的场景,更建议提交AWS工单申请新加坡本地始发号或自定义Sender ID,新加坡地区支持无号码的Sender ID发送短信,可规避跨境号码的发送限制问题。
  • 提取全链路日志排查
    前往SNS对应的CloudWatch日志组,筛选Publish接口的调用日志,找到Cognito触发的失败请求,查看SNS返回的完整错误码,可准确定位问题:
    • 如果返回InvalidParameter:大概率为号码格式错误
    • 如果返回EndpointDisabled:目标手机号被SNS标记为无效(之前多次发送失败被拉黑)
    • 如果返回AuthorizationError:为Cognito服务角色权限问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:00