tailscale/tailscale · error
admission controller: %v/%v not allowed
Error message
admission controller: %v/%v not allowed
What it means
verifyClient: the admission controller responded successfully but its DERPAdmitClientResponse had Allow=false for this client key/IP pair. A policy rejection: the derper refuses to serve this client by design.
Source
Thrown at derp/derpserver/derpserver.go:1656
}
res, err := http.DefaultClient.Do(req)
if err != nil {
if s.verifyClientsURLFailOpen {
s.logf("admission controller unreachable; allowing client %v", clientKey)
return nil
}
return err
}
defer res.Body.Close()
if res.StatusCode != 200 {
return fmt.Errorf("admission controller: %v", res.Status)
}
var jres tailcfg.DERPAdmitClientResponse
if err := json.NewDecoder(io.LimitReader(res.Body, 4<<10)).Decode(&jres); err != nil {
return err
}
if !jres.Allow {
return fmt.Errorf("admission controller: %v/%v not allowed", clientKey, clientIP)
}
// TODO(bradfitz): add policy for configurable bandwidth rate per client?
}
return nil
}
func (s *Server) sendServerKey(lw *lazyBufioWriter) error {
buf := make([]byte, 0, len(derp.Magic)+key.NodePublicRawLen)
buf = append(buf, derp.Magic...)
buf = s.publicKey.AppendTo(buf)
err := derp.WriteFrame(lw.bw(), derp.FrameServerKey, buf)
lw.Flush() // redundant (no-op) flush to release bufio.Writer
return err
}
func (s *Server) noteClientActivity(c *sclient) {
if !c.isDup.Load() {
// Fast path for clients that aren't in a dup set.View on GitHub (pinned to a7769cbc33)
Solutions
- Update the admission controller policy to allow this client's node key
- Verify the client IP/source presented to the controller matches what policy permits
- Have the client re-authenticate or rotate to a node key that policy admits
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at derp/derpserver/derpserver.go:1637 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tailscale/tailscale@a7769cbc33 (2026-08-18).
Data as JSON: /api/errors/3ba1da500397bf4b.
Report an issue: GitHub.