调用Agora录制服务查询接口后立即返回状态码6的问题排查
Agora云录制异常排查与修复方案
问题梳理
- 资源获取、启动录制接口调用均返回成功,但查询录制状态时返回
status:6(录制已停止),且fileList为空 - 调用停止录制接口时返回404错误
状态码6 + 空fileList 排查要点
1. 检查是否触发自动停止逻辑
你设置了maxIdleTime:30,如果频道里30秒内没有任何用户推流,录制会自动停掉。先确认启动录制时,频道里有没有用户正在发布音视频流:
- 去Agora控制台看频道监控,核实启动录制瞬间的在线用户和流状态
- 启动录制前,必须确保至少有一个客户端已经成功进频道并推流
2. 验证启动参数的有效性
- Token有效性:启动录制用的
token必须是有效的,且和cname、uid完全匹配,如果项目开了App Certificate,token必须包含正确的录制权限 - 转码参数检查:你设的
width:720, height:1280是竖屏分辨率,要确认和实际推流的分辨率比例匹配,比例差太大可能导致录制服务异常终止 - 存储配置验证:检查AWS S3的
accessKey/secretKey有没有写入桶的权限,桶的区域要和region:3(US_WEST_2俄勒冈)一致,权限或区域不对会导致文件生成失败
3. 确认录制服务实际启动状态
启动接口返回成功不代表录制真的开始工作了,要检查启动接口返回的sid是否有效,同时去Agora控制台的云录制日志里看启动详情,排查有没有启动失败的原因(比如资源分配失败、权限不足)
停止接口404 修复方案
Agora云录制的停止接口是POST请求,不是GET!而且路径参数必须正确:
- 把请求方法改成POST,别用GET
- 确保URL里的
resourceId和sid是本次录制的最新值(每次启动录制都会生成新的sid,不能复用旧的) - 正确的停止接口调用示例:
axios.post(`https://api.agora.io/v1/apps/${appId}/cloud_recording/resourceid/${resourceId}/sid/${sId}/mode/mix/stop`, { cname: cname, uid: uid.toString(), clientRequest: { stopReason: "Manual stop" } }, { headers: { 'Authorization': authorizationField, 'Content-Type': 'application/json' } })
额外提示
- 录制过程中别频繁调用查询接口,建议间隔10秒以上,避免触发限流
- 如果不需要自动停止,可以先把
maxIdleTime设为0(表示永不自动停止),排查是不是这个参数导致的提前停录
内容的提问来源于stack exchange,提问作者T K
相关产品推荐
相关产品推荐

