Skip to content

决战恢复模式下战备舰队 OCR 识别为空,导致任务抛出 RuntimeError 中断 #417

@syokounya

Description

@syokounya

在提交您的问题反馈之前

  • 我已经阅读了 用户文档 并尝试自己解决问题,同时在社群中进行了讨论
  • 我无法找到任何 open issue 反馈了相同的问题

相关环境信息

  • 项目版本:AutoWSGR 2.1.9.post4
  • 任务类型: 决战 (decisive)
  • 章节: Ex-1
  • 状态: 恢复模式 (stage=2, node=A)

问题描述

在决战(Decisive)任务进入恢复模式后,当游戏弹出「战备舰队获取」(fleet_acquisition) overlay 时,OCR 未能识别出任何费用项,导致 _recognize_fleet_options_with_retry 认为界面已关闭,直接抛出 RuntimeError,整个决战任务因此中断。
首次崩溃后,后续新任务在导航到 PageName.DECISIVE_BATTLE 时持续失败(页面识别器无法匹配 event_map_page),形成循环失败,直到手动干预。

autowsgr_2026-04-12.debug.log

复现方法

  1. 配置并启动一个决战任务(如 Ex-1)。
  2. 确保该章节处于恢复模式(日志显示 stage=2, node=A)。
  3. 进入地图后,游戏自动弹出「战备舰队获取」界面。
  4. 等待脚本执行 OCR 识别。
  5. 预期结果:识别到可用分数和费用列表,并继续选择舰队或跳过。
    实际结果:OCR 识别到分数为 5,但费用列表为 [],随后抛出异常 RuntimeError: 战备舰队界面已关闭,无法继续在该界面重试 OCR,任务状态变为 error。

Log输出

00:32:24.546 | DEBUG    | ui/decisive/overlay.py:225 | [决战] 检测到 overlay: fleet_acquisition
00:32:24.599 | DEBUG    | ops/decisive/controller.py:124 | [决战] 阶段: CHOOSE_FLEET | 小关: 2 | 节点: A
00:32:24.601 | INFO     | ops/decisive/handlers.py:206 | [决战] 战备舰队获取
00:32:25.610 | DEBUG    | ui/decisive/fleet_ocr.py:98 | [舰队OCR] 开始识别战备舰队可选项
00:32:27.223 | DEBUG    | vision/ocr.py:222 | [OCR] recognize_number: '5' → 5
00:32:27.223 | DEBUG    | ui/decisive/fleet_ocr.py:111 | [舰队OCR] 可用分数: 5
00:32:28.243 | DEBUG    | ui/decisive/fleet_ocr.py:136 | [舰队OCR] 识别到 0 项费用: []
00:32:28.243 | INFO     | ui/decisive/fleet_ocr.py:166 | [舰队OCR] 舰队选项: {}
00:32:28.245 | ERROR    | ops/decisive/controller.py:86 | [决战] 执行异常
Traceback (most recent call last):
  ...
  File "autowsgr/ops/decisive/handlers.py", line 62, in _recognize_fleet_options_with_retry
    raise RuntimeError('战备舰队界面已关闭,无法继续在该界面重试 OCR')
RuntimeError: 战备舰队界面已关闭,无法继续在该界面重试 OCR
00:32:28.251 | WARNING  | server/routes/task.py:314 | [Task] 决战第 1 轮终止 error
00:32:28.252 | INFO     | server/task_manager.py:170 | [Task] 任务完成: task_2367891f (completed)
...
00:32:28.627 | INFO     | server/task_manager.py:148 | [Task] 启动任务: task_eb49e36d (decisive)
00:32:28.636 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL – 所有子签名 (2) 均未匹配
00:32:28.637 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配(共 13 个注册页面)
...
00:32:33.898 | ERROR    | ops/navigate.py:134 | [OPS] 导航失败: 无法识别当前页面,导航中... (目标: PageName.DECISIVE_BATTLE)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions