juanfont/headscale · error
%s failed to get IPs: %w
Error message
%s failed to get IPs: %w
What it means
Error "%s failed to get IPs: %w" thrown in juanfont/headscale.
Source
Thrown at integration/tsic/tsic.go:877
return dockertestutil.ReconnectContainerToNetwork(t.pool, network, t.hostname)
}
// IPs returns the [netip.Addr] of the Tailscale instance.
func (t *TailscaleInContainer) IPs() ([]netip.Addr, error) {
if len(t.ips) != 0 {
return t.ips, nil
}
// Retry with exponential backoff to handle eventual consistency
ips, err := backoff.Retry(context.Background(), func() ([]netip.Addr, error) {
command := []string{
tailscaleBin,
"ip",
}
result, _, err := t.Execute(command)
if err != nil {
return nil, fmt.Errorf("%s failed to get IPs: %w", t.hostname, err)
}
ips := make([]netip.Addr, 0)
for address := range strings.SplitSeq(result, "\n") {
address = strings.TrimSuffix(address, "\n")
if len(address) < 1 {
continue
}
ip, err := netip.ParseAddr(address)
if err != nil {
return nil, fmt.Errorf("parsing IP %s: %w", address, err)
}
ips = append(ips, ip)
}
View on GitHub (pinned to 565fd254d0)
Solutions
- Inspect the wrapped error for the underlying cause and correct the failing condition (failed to get IPs); 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 (failed to get IPs); retry the operation after fixing the input, configuration, or environment.
When it happens
Trigger: Thrown at integration/tsic/tsic.go:877 when the library encounters an invalid state.
Common situations: Retrieving the node's Tailscale IPs failed. Ensure the node is up and 'tailscale status' works inside the container.
AI-assisted analysis of juanfont/headscale@565fd254d0 (2026-08-15).
Data as JSON: /api/errors/58a691f45d93ae6b.
Report an issue: GitHub.