babalae/better-genshin-impact · error · Exception
领取奖励失败
Error message
领取奖励失败
What it means
Thrown by AttemptReward when its recursive retry counter reaches maxRetry (3). Each attempt sends the interact key, waits, then calls VerifyRewardPage; when verification keeps failing it returns to the main UI, re-navigates, and retries — all three attempts failed to confirm the reward page.
Source
Thrown at BetterGenshinImpact/GameTask/AutoLeyLineOutcrop/AutoLeyLineOutcropTask.cs:1680
return false;
}
_switchPartyTask ??= new SwitchPartyTask();
var success = await _switchPartyTask.Start(partyName, _ct);
if (success)
{
RunnerContext.Instance.PartyName = partyName;
}
return success;
}
private async Task<bool> AttemptReward(int retryCount = 0)
{
const int maxRetry = 3;
if (retryCount >= maxRetry)
{
throw new Exception("领取奖励失败");
}
Simulation.SendInput.SimulateAction(GIActions.PickUpOrInteract);
await Delay(800, _ct);
if (!await VerifyRewardPage())
{
await _returnMainUiTask.Start(_ct);
await AutoNavigateToReward();
return await AttemptReward(retryCount + 1);
}
if (!await TryUseRewardResin())
{
await EnsureExitRewardPage();
return false;
}
View on GitHub (pinned to a7cb36712d)
Solutions
- Confirm the reward/claim UI template used by VerifyRewardPage still matches the current game version.
- Ensure input injection is working (focus on the game window, no input-blocking overlays).
- Increase the 800ms delay before VerifyRewardPage if the UI animates slowly.
- Re-run the task when the game is responsive.
Defensive patterns
Strategy: retry
Try / catch
try { await AttemptReward(); }
catch (Exception ex) when (ex.Message == "领取奖励失败")
{
_logger.LogWarning("领取奖励内部重试耗尽,重新导航后再试");
await _returnMainUiTask.Start(_ct);
await AutoNavigateToReward();
await AttemptReward();
} Prevention
- Confirm VerifyRewardPage's template matches the current game version.
- Ensure input injection reaches the game (no overlay stealing focus).
- Allow enough delay for the reward UI animation before verifying.
When it happens
Trigger: AttemptReward(retryCount) with retryCount >= 3 → throw. The recursion increments retryCount whenever VerifyRewardPage returns false.
Common situations: The interact key press isn't registering (input desync); the reward page opens but VerifyRewardPage's template doesn't match; UI lag/animation causing the verify to run too early.
Related errors
AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13).
Data as JSON: /api/errors/6b2882d6f946e2fb.
Report an issue: GitHub.