Flutter Amplify AppSync中ConnectionProviderError错误4、5含义咨询
Flutter Amplify AppSync 实时订阅错误场景分析
Error 5: Unauthorized 错误
- 触发场景:
- 身份凭证失效:订阅依赖的Cognito令牌过期且未自动刷新,或凭证本身无效,导致AppSync鉴权失败。
- IAM权限不足:使用IAM认证时,角色未被授予
appsync:Subscribe权限,或者资源ARN配置与目标GraphQL API不匹配。 - GraphQL字段权限不满足:订阅对应的GraphQL字段配置了
@auth规则,当前用户身份不符合规则要求,被服务端拒绝。 - 凭证传递异常:Flutter端Amplify Auth模块初始化不完整,导致订阅请求未携带有效身份信息。
Error 4: 连接提供者通用错误
- 触发场景:
- 网络不稳定:WebSocket连接建立或维持过程中,出现网络波动、中断,导致连接握手失败或意外断开。
- AppSync服务临时故障:AWS对应区域的AppSync服务出现短暂不可用,无法处理连接请求。
- WebSocket握手异常:客户端与服务端的WebSocket协议版本不兼容,或请求头缺失必要参数(如
authorization、host),导致握手失败。 - 连接超时:客户端发起连接请求后,超出预设时间未收到服务端响应,触发超时错误。
排查建议
- 针对Error 5:
- 验证凭证刷新逻辑:确认Amplify Auth能自动刷新过期令牌,订阅前主动检查凭证有效性。
- 核对IAM权限配置:确保角色包含
appsync:Subscribe动作,且资源ARN精准匹配目标API。 - 审查GraphQL权限规则:检查订阅字段的
@auth指令,确认当前用户满足权限条件。
- 针对Error 4:
- 添加网络状态检测:在订阅操作前后判断网络可用性,避免在弱网/断网环境发起请求。
- 查看CloudWatch日志:通过AWS CloudWatch查看AppSync服务端日志,获取连接失败的具体细节。
- 校验Amplify配置:确认
amplifyconfiguration.dart中AppSync端点、认证方式等配置无误。
内容的提问来源于stack exchange,提问作者raphire
相关产品推荐
相关产品推荐

