Fix Tailscale Registration Errors When IP Pools Exhaust

by Jule 56 views
Fix Tailscale Registration Errors When IP Pools Exhaust

When tailscale runs in Kubernetes with ACL-based IP pools, failed pod registrations often return cryptic HTTP 500 errors - no clue that the real culprit is a pool running out of IPs. Instead of the server spamming 500s, imagine a clear message: ‘IP pool exhausted for tag:k8s (pool: 100.64.1.0/28, 14/14 allocated).’ This simple fix would end infinite retries and let admins see the root cause instantly. It’s not a bug - it’s a silent failure mode masked as a generic error. The current system treats a full pool like a generic server outage, wasting resources and confusing operators who guess why the registration breaks. Fixing this starts with updating the server to return descriptive RegisterResponse.Error instead of bare 500s. A client-side event on pod creation - like a warning saying ‘RegistrationFailed: IP pool exhausted’ - would make troubleshooting intuitive, mirroring how kubectl already surfaces Kubernetes issues. On the nat connector, dropping requests silently during pool exhaustion causes timeouts; returning DNS SERVFAIL instead would preserve visibility. This isn’t just a tweak - it’s restoring clarity in a system where silence hides serious configuration flaws. Are you diagnosing IP pool exhaustion before it chokes your clusters?