{"record":{"id":"001b08eccdb52287","repo":"babalae/better-genshin-impact","slug":"taskparam-teamname","errorCode":null,"errorMessage":"切换队伍失败：{_taskParam.TeamName}","messagePattern":"切换队伍失败：(.+?)","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"BetterGenshinImpact/GameTask/AutoBoss/AutoBossTask.cs","lineNumber":1091,"sourceCode":"\n    /// <summary>\n    /// 回到主界面并按配置尝试切换到指定队伍。\n    /// </summary>\n    private async Task Prepare()\n    {\n        await _returnMainUiTask.Start(_ct);\n\n        if (string.IsNullOrWhiteSpace(_taskParam.TeamName))\n        {\n            return;\n        }\n\n        _logger.LogInformation(\"{Name}：切换队伍 {TeamName}\", Name, _taskParam.TeamName);\n        _switchPartyTask ??= new SwitchPartyTask();\n        var success = await _switchPartyTask.Start(_taskParam.TeamName, _ct);\n        if (!success)\n        {\n            throw new InvalidOperationException($\"切换队伍失败：{_taskParam.TeamName}\");\n        }\n    }\n\n    /// <summary>\n    /// 按 Boss 类型执行前往路线，特殊 Boss 使用强制传送加键鼠宏路线。\n    /// </summary>\n    private async Task NavigateToBoss()\n    {\n        _logger.LogInformation(\"{Name}：前往 {Boss}\", Name, _taskParam.BossName);\n        if (AutoBossData.IsNoPathingSupportBoss(_taskParam.BossName))\n        {\n            await RunPathingFile($\"{_taskParam.BossName}强制传送.json\");\n            await RunKeyMouseFile($\"{_taskParam.BossName}键鼠前往.json\");\n            return;\n        }\n\n        await RunPathingFile($\"{_taskParam.BossName}前往.json\");\n    }","sourceCodeStart":1073,"sourceCodeEnd":1109,"githubUrl":"https://github.com/babalae/better-genshin-impact/blob/a7cb36712dcb409be610257d877fcea3597e9d6b/BetterGenshinImpact/GameTask/AutoBoss/AutoBossTask.cs#L1073-L1109","documentation":"在返回主界面后，若配置了 TeamName，调用 SwitchPartyTask.Start 切换队伍，返回 false 即抛 InvalidOperationException。false 表示按名称未找到/未成功切换到目标队伍。","triggerScenarios":"TeamName 在游戏队伍列表中不存在（拼写/大小写/全角差异）；切换队伍过程中 OCR/点击失败；队伍列表未正确打开或被遮挡；多页队伍未翻到。","commonSituations":"用户改了队伍名但配置未同步；游戏队伍命名含特殊字符；切换队伍识别资源过期；UI 响应慢导致超时返回 false。","solutions":["确认 _taskParam.TeamName 与游戏内队伍名完全一致（含全角字符、空格）。","若无需切换队伍，清空 TeamName 配置跳过该步骤。","更新队伍切换识别资源/逻辑，检查 SwitchPartyTask 失败的具体原因。","重试切换或加大等待时间。"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// 启动前校验 TeamName 非空时为合理名称；运行时重试切换\nif (!string.IsNullOrWhiteSpace(_taskParam.TeamName))\n{\n    // 可在切换失败后重试 1-2 次\n}","typeGuard":null,"tryCatchPattern":"try { var ok = await _switchPartyTask.Start(_taskParam.TeamName, _ct); if (!ok) throw new InvalidOperationException(...); }\ncatch (InvalidOperationException) { /* 重试或清空 TeamName 跳过 */ }","preventionTips":["TeamName 与游戏内队伍名精确一致。","无需切换时清空 TeamName。","切换失败时记录具体原因并重试。"],"tags":["party-switch","ocr","config","genshin","autoboss"],"backgroundTag":null,"analyzedSha":"a7cb36712dcb409be610257d877fcea3597e9d6b","analyzedAt":"2026-08-13T16:44:57.548Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}