babalae/better-genshin-impact · error · InvalidOperationException

切换队伍失败:{_taskParam.TeamName}

Error message

切换队伍失败:{_taskParam.TeamName}

What it means

在返回主界面后,若配置了 TeamName,调用 SwitchPartyTask.Start 切换队伍,返回 false 即抛 InvalidOperationException。false 表示按名称未找到/未成功切换到目标队伍。

Source

Thrown at BetterGenshinImpact/GameTask/AutoBoss/AutoBossTask.cs:1091

    /// <summary>
    /// 回到主界面并按配置尝试切换到指定队伍。
    /// </summary>
    private async Task Prepare()
    {
        await _returnMainUiTask.Start(_ct);

        if (string.IsNullOrWhiteSpace(_taskParam.TeamName))
        {
            return;
        }

        _logger.LogInformation("{Name}:切换队伍 {TeamName}", Name, _taskParam.TeamName);
        _switchPartyTask ??= new SwitchPartyTask();
        var success = await _switchPartyTask.Start(_taskParam.TeamName, _ct);
        if (!success)
        {
            throw new InvalidOperationException($"切换队伍失败:{_taskParam.TeamName}");
        }
    }

    /// <summary>
    /// 按 Boss 类型执行前往路线,特殊 Boss 使用强制传送加键鼠宏路线。
    /// </summary>
    private async Task NavigateToBoss()
    {
        _logger.LogInformation("{Name}:前往 {Boss}", Name, _taskParam.BossName);
        if (AutoBossData.IsNoPathingSupportBoss(_taskParam.BossName))
        {
            await RunPathingFile($"{_taskParam.BossName}强制传送.json");
            await RunKeyMouseFile($"{_taskParam.BossName}键鼠前往.json");
            return;
        }

        await RunPathingFile($"{_taskParam.BossName}前往.json");
    }

View on GitHub (pinned to a7cb36712d)

Solutions

  1. 确认 _taskParam.TeamName 与游戏内队伍名完全一致(含全角字符、空格)。
  2. 若无需切换队伍,清空 TeamName 配置跳过该步骤。
  3. 更新队伍切换识别资源/逻辑,检查 SwitchPartyTask 失败的具体原因。
  4. 重试切换或加大等待时间。
Defensive patterns

Strategy: retry

Validate before calling

// 启动前校验 TeamName 非空时为合理名称;运行时重试切换
if (!string.IsNullOrWhiteSpace(_taskParam.TeamName))
{
    // 可在切换失败后重试 1-2 次
}

Try / catch

try { var ok = await _switchPartyTask.Start(_taskParam.TeamName, _ct); if (!ok) throw new InvalidOperationException(...); }
catch (InvalidOperationException) { /* 重试或清空 TeamName 跳过 */ }

Prevention

When it happens

Trigger: TeamName 在游戏队伍列表中不存在(拼写/大小写/全角差异);切换队伍过程中 OCR/点击失败;队伍列表未正确打开或被遮挡;多页队伍未翻到。

Common situations: 用户改了队伍名但配置未同步;游戏队伍命名含特殊字符;切换队伍识别资源过期;UI 响应慢导致超时返回 false。

Related errors


AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13). Data as JSON: /api/errors/001b08eccdb52287. Report an issue: GitHub.