tailscale/tailscale · error

error sending event to recorder with address %q: %v

Error message

error sending event to recorder with address %q: %v

What it means

Streaming the encoded session-recording event to one of the tsrecorder addresses failed (with API-support failures handled separately), so that recorder didn't receive the event; failures across recorders aggregate and decide fail-open/fail-closed.

Source

Thrown at k8s-operator/api-proxy/proxy.go:422

	}
	req.Body = io.NopCloser(bytes.NewReader(bodyBytes))
	event.Request.Body = bodyBytes

	var errs []error
	// TODO: ChaosInTheCRD ensure that if there are multiple addrs timing out we don't experience slowdown on client waiting for response.
	fail := true
	for _, addr := range addrs {
		data := new(bytes.Buffer)
		if err := json.NewEncoder(data).Encode(event); err != nil {
			return fmt.Errorf("error marshaling request event: %w", err)
		}

		if err := ap.sendEventFunc(addr, data, ap.ts.Dial); err != nil {
			if apiSupportErr, ok := err.(sessionrecording.EventAPINotSupportedErr); ok {
				ap.log.Warnf(apiSupportErr.Error())
				fail = false
			} else {
				err := fmt.Errorf("error sending event to recorder with address %q: %v", addr.String(), err)
				errs = append(errs, err)
			}
		} else {
			return nil
		}
	}

	merr := errors.Join(errs...)
	if fail && failOpen {
		msg := fmt.Sprintf("[unexpected] failed to send event to recorders with errors: %s", merr.Error())
		msg = msg + "; failure mode is 'fail open'; continuing request without recording."
		ap.log.Warn(msg)
		return nil
	}

	return merr
}

View on GitHub (pinned to 6e0912f979)

Solutions

  1. Sending the session-recording event to the recorder failed; verify the recorder address is correct and reachable from the operator.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at k8s-operator/api-proxy/proxy.go:422 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tailscale/tailscale@6e0912f979 (2026-08-18). Data as JSON: /api/errors/f497076ee3d1b63d. Report an issue: GitHub.