babalae/better-genshin-impact · error · Exception

当前未处于主题专辑界面,请在专辑界面运行本任务。注意全部歌曲列表页面无法运行本任务!

Error message

当前未处于主题专辑界面,请在专辑界面运行本任务。注意全部歌曲列表页面无法运行本任务!

What it means

Thrown by AutoAlbumTask.StartOneAlbum when the album-icon template (UiLeftTopAlbumIcon) is not found on screen, meaning the game is not currently on a theme-album page. The music task requires being on a country-themed album view to start.

Source

Thrown at BetterGenshinImpact/GameTask/AutoMusicGame/AutoAlbumTask.cs:54

        catch (NormalEndException e)
        {
            Logger.LogError("手动取消任务 - {Msg}", e.Message);
        }
        catch (Exception e)
        {
            Logger.LogError("自动音乐专辑任务异常:{Msg}", e.Message);
            Logger.LogDebug(e, "自动音乐专辑任务异常详情");
            Notify.Event(NotificationEvent.AlbumError).Error("自动音游专辑异常", e);
        }
    }

    public async Task StartOneAlbum(CancellationToken ct)
    {
        using var ra1 = CaptureToRectArea();
        using var iconRa = ra1.Find(RecognitionAssets.Get("AutoMusicGame", "UiLeftTopAlbumIcon", ra1));
        if (!iconRa.IsExist())
        {
            throw new Exception("当前未处于主题专辑界面,请在专辑界面运行本任务。注意全部歌曲列表页面无法运行本任务!");
        }
        else
        {
            // OCR 后再次判断,区分是否是全部歌曲页面
            using var ocrArea = ra1.DeriveCrop(iconRa.Right, iconRa.Top, ra1.Width * 0.16, iconRa.Height);
            var ocrRes = ocrArea.FindMulti(RecognitionObject.OcrThis);
            if (ocrRes.Any(region => region.Text.Contains("全部")))
            {
                throw new Exception("当前在全部歌曲页面,此页面无法运行本任务。请返回到主界面选择专辑列表中以国家为主题的专辑页!");
            }
        }

        var musicLevel = TaskContext.Instance().Config.AutoMusicGameConfig.MusicLevel;
        if (string.IsNullOrEmpty(musicLevel))
        {
            musicLevel = "传说";
        }

View on GitHub (pinned to a7cb36712d)

Solutions

  1. Navigate in-game to a country-themed album page (not the all-songs list) before starting the task.
  2. Update the UiLeftTopAlbumIcon template to match the current game version.
  3. Check resolution is 16:9 and >= 1080p so the template matches.
  4. Confirm the recognition threshold for the Find call.
Defensive patterns

Strategy: validation

Validate before calling

using var ra = CaptureToRectArea();
using var icon = ra.Find(RecognitionAssets.Get("AutoMusicGame", "UiLeftTopAlbumIcon", ra));
if (!icon.IsExist())
{
    throw new InvalidOperationException("未处于主题专辑界面,请先在游戏中进入国家主题专辑页");
}

Prevention

When it happens

Trigger: ra1.Find(RecognitionAssets.Get("AutoMusicGame","UiLeftTopAlbumIcon",ra1)).IsExist() returns false.

Common situations: User started the task from the wrong page (main menu, all-songs list, a single song); template match threshold too strict; resolution/aspect mismatch; game UI changed.

Related errors


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