babalae/better-genshin-impact · error · Exception
未找与凯瑟琳对话交互按钮
Error message
未找与凯瑟琳对话交互按钮
What it means
Thrown in GoToAdventurersGuildTask.DoOnce after the daily-commission reward is claimed and the UI is returned to the main view: Bv.FindFAndPress cannot find Catherine's localized interaction text (凯瑟琳) to reopen the dialogue for the expedition step.
Source
Thrown at BetterGenshinImpact/GameTask/Common/Job/GoToAdventurersGuildTask.cs:113
// 6.2 每日提示确认
using var ra1 = CaptureToRectArea();
if (Bv.ClickBlackConfirmButton(ra1))
{
Logger.LogInformation("存在提示并确认");
}
await _chooseTalkOptionTask.SelectLastOptionUntilEnd(ct, null, 3); // 点几下
await Bv.WaitUntilFound(ElementRecognition.Get("PaimonMenu"), ct);
await Delay(500, ct);
TaskContext.Instance().PostMessageSimulator.KeyPress(User32.VK.VK_ESCAPE);
await new ReturnMainUiTask().Start(ct);
// 结束后重新打开
await Delay(1200, ct);
using var ra = CaptureToRectArea();
if (!Bv.FindFAndPress(ra, text: this.catherineLocalizedString))
{
throw new Exception("未找与凯瑟琳对话交互按钮");
}
}
else if (res == TalkOptionRes.FoundButNotOrange)
{
Logger.LogInformation("▶ {Text} 未完成或者已领取", "领取『每日委托』奖励");
}
else
{
Logger.LogWarning("▶ 未找到 {Text} 选项", "领取『每日委托』奖励");
}
// 探索
res = await _chooseTalkOptionTask.SingleSelectText(this.expeditionLocalizedString, ct, 10, true);
if (res == TalkOptionRes.FoundAndClick)
{
await Delay(500, ct);
new OneKeyExpeditionTask().Run();
}View on GitHub (pinned to a7cb36712d)
Solutions
- Lengthen the post-return delay or wait until the world F-prompts are visible before searching.
- Walk the character back to Catherine's known position before re-searching (reuse the pathing EndAction).
- Confirm TaskContext config GameCultureInfoName yields the expected localized '凯瑟琳' string.
- Retry the FindFAndPress a few times with small delays instead of failing on the first miss.
Example fix
null
Defensive patterns
Strategy: retry
Validate before calling
null
Type guard
null
Try / catch
try { await task.DoOnce(country, ct); }
catch (Exception e) when (e.Message == "未找与凯瑟琳对话交互按钮")
{ /* walk back to Catherine, wait for world render, then re-search */ } Prevention
- Wait until world F-prompts render before searching after a UI return.
- Re-approach Catherine's known position before the second dialogue attempt.
- Confirm GameCultureInfoName yields the expected '凯瑟琳' label.
When it happens
Trigger: After pressing ESC + ReturnMainUiTask and a 1200ms delay, CaptureToRectArea + Bv.FindFAndPress(ra, text: catherineLocalizedString) returns false. The F-prompt text '凯瑟琳' is not found, meaning Catherine is off-screen, the camera moved, or the localization is wrong.
Common situations: The post-reward camera/character position drifted so Catherine is no longer in front; the 1200ms delay was too short and the world had not fully rendered; the configured game culture does not produce '凯瑟琳' as the F-prompt label; a different NPC's prompt occludes it.
Related errors
AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13).
Data as JSON: /api/errors/a77a1343971e7651.
Report an issue: GitHub.