Agora云录制调用start接口返回无错误信息的400状态码问题
Agora Cloud Recording 启动接口400无错误信息排查方案
首先优先补充日志输出响应体内容:你当前仅打印了响应状态码,没有读取resp.Body的实际返回内容,绝大多数400响应都会在body中返回具体错误说明,先补充日志读取并打印响应体,可直接定位大部分问题。
以下为高频触发该问题的排查点:
- 校验uid一致性:
acquire接口和start接口必须使用完全相同的uid,且该uid未被频道内其他真实用户占用。同时确认生成RTC Token时使用的app ID、频道名、uid和start接口中传的cname、uid完全匹配,字符级别的不一致都会触发校验失败。 - 检查云存储区域枚举值:
storageConfig中的region参数必须使用Agora官方定义的云存储区域枚举,不可直接传入AWS等云厂商原生的区域编码,例如AWS美东1区在Agora的枚举值为0,传错区域会直接返回无详情的400错误。 - 修正请求体生成逻辑:你当前代码中
fmt.Sprintf的JSON模板占位符数量和传参数量不匹配,模板内共有8个占位符,但实际传入了9个参数(末尾多传了channelID),Go的fmt包在参数不匹配时会生成带异常后缀的非法JSON,引发结构校验失败。如果你需要将频道名加入存储路径前缀,将fileNamePrefix配置改为"fileNamePrefix": ["tracks", "%s"]即可匹配多余的channelID参数。 - 校验录制模式一致性:确认
acquire接口调用时指定的录制模式和start接口的mode参数一致,你当前start使用的是mix合流模式,如果acquire时选择了单流模式也会触发400错误。 - 检查云存储权限:确认配置的AK、SK拥有对应bucket的写权限,bucket名称和所属区域完全匹配,无拼写错误。
内容的提问来源于stack exchange,提问作者eric6685
相关产品推荐
相关产品推荐

