juanfont/headscale · error
compiling nodeAttrs: %w
Error message
compiling nodeAttrs: %w
What it means
Error "compiling nodeAttrs: %w" thrown in juanfont/headscale.
Source
Thrown at hscontrol/policy/v2/policy.go:1789
// SetUsers/SetNodes between SetPolicy and a NodesWithChangedCapMap
// drain cannot clobber the policy-reload diff.
//
// Caller must hold pm.mu.
func (pm *PolicyManager) refreshNodeAttrsLocked() error {
// Fast path for the common steady-state shape: tailnet has no
// nodeAttrs entries and never had any. Skip the compile + per-node
// hash walk entirely. As soon as the operator adds a nodeAttrs
// entry pm.nodeAttrsHashes becomes non-empty and the gate opens.
if pm.pol != nil &&
len(pm.pol.NodeAttrs) == 0 &&
!pm.pol.RandomizeClientPort &&
len(pm.nodeAttrsHashes) == 0 {
return nil
}
newMap, err := pm.pol.compileNodeAttrs(pm.users, pm.nodes)
if err != nil {
return fmt.Errorf("compiling nodeAttrs: %w", err)
}
newHashes := make(map[types.NodeID]deephash.Sum, len(newMap))
for id, capMap := range newMap {
newHashes[id] = deephash.Hash(&capMap)
}
// Walk the union of old and new node IDs and emit the delta.
seen := make(map[types.NodeID]struct{}, len(newHashes)+len(pm.nodeAttrsHashes))
var changed []types.NodeID
for id, h := range newHashes {
seen[id] = struct{}{}
if pm.nodeAttrsHashes[id] != h {
changed = append(changed, id)
}
}View on GitHub (pinned to 565fd254d0)
Solutions
- Inspect the wrapped error for the underlying cause and correct the failing condition (compiling nodeAttrs); 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 (compiling nodeAttrs); retry the operation after fixing the input, configuration, or environment.
When it happens
Trigger: Thrown at hscontrol/policy/v2/policy.go:1789 when the library encounters an invalid state.
Common situations: Compilation of nodeAttrs failed. Check nodeAttrs entries for unsupported features or invalid targets.
AI-assisted analysis of juanfont/headscale@565fd254d0 (2026-08-15).
Data as JSON: /api/errors/9569315ad3d67091.
Report an issue: GitHub.