juanfont/headscale · error
parsing SSH policy, unknown action %q, index: %d: %w
Error message
parsing SSH policy, unknown action %q, index: %d: %w
What it means
Error "parsing SSH policy, unknown action %q, index: %d: %w" thrown in juanfont/headscale.
Source
Thrown at hscontrol/policy/v2/filter.go:298
if err != nil {
log.Trace().Caller().Err(err).Msgf(
"ssh policy compilation failed resolving source ips for rule %+v", rule,
)
}
if srcIPs == nil || len(srcIPs.Prefixes()) == 0 {
continue
}
var action tailcfg.SSHAction
switch rule.Action {
case SSHActionAccept:
action = sshAccept
case SSHActionCheck:
action = sshCheck(baseURL)
default:
return nil, fmt.Errorf(
"parsing SSH policy, unknown action %q, index: %d: %w",
rule.Action, index, err,
)
}
acceptEnv := rule.AcceptEnv
// Build the common userMap (always has at least a root entry).
const rootUser = "root"
baseUserMap := make(map[string]string, len(rule.Users))
if rule.Users.ContainsNonRoot() {
baseUserMap["*"] = "="
}
if rule.Users.ContainsRoot() {
baseUserMap[rootUser] = rootUser
} else {View on GitHub (pinned to 565fd254d0)
Solutions
- Inspect the wrapped error for the underlying cause and correct the failing condition (parsing SSH policy, unknown action , index); retry the operation after fixing the input, configuration, or environment.
Example fix
Inspect the wrapped error for the underlying cause and correct the failing condition (parsing SSH policy, unknown action , index); retry the operation after fixing the input, configuration, or environment.
When it happens
Trigger: Thrown at hscontrol/policy/v2/filter.go:298 when the library encounters an invalid state.
Common situations: An SSH rule uses an unknown action. Valid SSH actions are accept and check; fix the action at the reported rule index.
AI-assisted analysis of juanfont/headscale@565fd254d0 (2026-08-15).
Data as JSON: /api/errors/61d2fe33e93f3de9.
Report an issue: GitHub.