JanDeDobbeleer/oh-my-posh · info
no matching window title found
Error message
no matching window title found
What it means
queryWindowTitles enumerates all top-level windows via EnumWindows and matches window titles against a pattern. When no window title matches, the collected title is empty and this error is raised; the wrapped message includes any enumeration error (e.g. from getWindowFileName) for diagnostics.
Source
Thrown at src/runtime/win32_windows.go:110
title = syscall.UTF16ToString(b)
if regex.MatchString(windowTitleRegex, title) {
// will cause EnumWindows to return 0 (error)
// but we don't want to enumerate all windows since we got what we want
return 0
}
return 1 // continue enumeration
})
// Enumerates all top-level windows on the screen
// The error is not checked because if EnumWindows is stopped before enumerating all windows
// it returns 0(error occurred) instead of 1(success)
// In our case, title will equal "" or the title of the window anyway
err := enumWindows(cb, 0)
if title == "" {
var message string
if err != nil {
message = err.Error()
}
return "", errors.New("no matching window title found\n" + message)
}
return title, nil
}
var (
advapi = syscall.NewLazyDLL("advapi32.dll")
procGetAce = advapi.NewProc("GetAce")
)
const (
ACCESS_DENIED_ACE_TYPE = 1
)
type accessMask uint32
func (m accessMask) canWrite() bool {
allowed := []int{windows.GENERIC_WRITE, windows.WRITE_DAC, windows.WRITE_OWNER}
for _, v := range allowed {View on GitHub (pinned to 0976794618)
Solutions
- Confirm the expected application window actually exists and its title contains the searched text (inspect with Get-Process | Select MainWindowTitle).
- Avoid tools/scripts that rewrite the terminal window title ($Host.UI.RawUI.WindowTitle or echo -ne '\e]0;...') if window-title detection matters.
- This is usually harmless: the caller treats unmatched titles as 'not that app' and falls back to default behavior - no action needed unless you rely on window detection.
Defensive patterns
Strategy: fallback
Try / catch
// enumerate and fall back to default behavior when nothing matches
title, err := term.QueryWindowTitles(pattern)
if err != nil {
// no matching window: proceed with non-window-specific behavior
} Prevention
- Don't let other tools/scripts rewrite the terminal window title if window detection matters
- Use stable terminal applications whose window titles include the expected text
- Treat this error as informational - it simply means 'not the expected app'
When it happens
Trigger: Calling QueryWindowTitles(pattern) when no currently visible top-level window's title contains the requested text, or when every candidate window failed processing (e.g. process open failures) leaving title empty.
Common situations: oh-my-posh checking whether it runs inside a known terminal window and the terminal's window title was customized by the user or a shell integration; running in a session without a visible window (ssh, service); the terminal's title changed due to a newer shell version.
Related errors
- unable to add font resource using AddFontResourceW
- unknown value received
- unable to open window process
- unable to delete font file after registry key open error
- unable to open HKEY_CURRENT_USER
AI-assisted analysis of JanDeDobbeleer/oh-my-posh@0976794618 (2026-08-31).
Data as JSON: /api/errors/a180fc4b537eeb99.
Report an issue: GitHub.