-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
问题描述
在 GUI 运行过程中,出现 scrcpy 视频流已断开 后,调用 POST /api/reward/collect 会触发 adbutils.errors.AdbError: closed。
当前行为:
- 后端记录 warning:
[API] 收取奖励失败: closed - 打印非常长的 traceback(噪音较大)
- HTTP 仍返回 200(ApiResponse.success=false)
关键日志链路
[Emulator] scrcpy 视频流已断开[API] 收取奖励失败: closed- traceback 最终落在:
autowsgr/server/routes/ops.pyreward_collectautowsgr/ops/reward.py->goto_page(ctx, PageName.MAIN)autowsgr/ui/map/base.py->ctrl.click(...)adbutils.errors.AdbError: closed
代码位置
autowsgr/server/routes/ops.pyline ~126-142 (reward_collect)autowsgr/emulator/controller/scrcpy.pyline ~275 (视频流断开)
影响
- scrcpy/adb 断链后,运营类 API(如 reward_collect)容易失败
- 返回 200 但 success=false,调用方很难基于状态码区分“设备断链”与普通业务失败
- traceback 过长,污染日志
建议
- 对
AdbError: closed/ 设备断链场景做专门捕获并返回更明确语义(建议 503 或 409 + machine-readable error code)。 - 在路由层增加设备连接健康检查(或统一守卫)后再执行 UI 操作。
- 对预期连接中断类异常降噪,避免整段 traceback。
4.(可选)尝试自动重连 scrcpy/adb 或触发统一恢复流程。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels