cloudflare/cloudflared · error
%s
Error message
%s
What it means
When unmarshalling a ConfigurationManager RPC response, the remote side reported an error string (s.Err()). cloudflared wraps that raw string into a Go error verbatim and stores it on the parsed response. The message content is entirely determined by the remote peer.
Source
Thrown at tunnelrpc/pogs/configuration_manager.go:99
Err error `json:"err"`
}
func (p *UpdateConfigurationResponse) Marshal(s proto.UpdateConfigurationResponse) error {
s.SetLatestAppliedVersion(p.LastAppliedVersion)
if p.Err != nil {
return s.SetErr(p.Err.Error())
}
return nil
}
func (p *UpdateConfigurationResponse) Unmarshal(s proto.UpdateConfigurationResponse) error {
p.LastAppliedVersion = s.LatestAppliedVersion()
respErr, err := s.Err()
if err != nil {
return err
}
if respErr != "" {
p.Err = fmt.Errorf("%s", respErr)
}
return nil
}
View on GitHub (pinned to 2253eeeb25)
Solutions
- Read the embedded string — it contains the server's explanation.
- Re-fetch/re-apply configuration; transient remote errors often clear on retry.
- Verify cloudflared and edge are on compatible versions (update cloudflared).
- Check tunnel configuration validity in the Cloudflare dashboard.
Defensive patterns
Strategy: try-catch
Try / catch
var resp ConfigurationManagerResponse
if err := resp.Unmarshal(s); err != nil {
log.Warn().Err(err).Msg("remote configuration apply failed; retrying")
retryWithBackoff()
} Prevention
- Keep cloudflared updated to stay RPC-compatible with the edge
- Validate tunnel configuration before pushing it
- Treat the embedded error string as authoritative server feedback
When it happens
Trigger: Unmarshal of a ConfigurationManager response whose Err field is non-empty; typically surfaces when the server-side configuration apply/reconcile failed.
Common situations: Edge rejects a tunnel configuration update; remote configuration changed concurrently; server hit an internal error while applying configuration; version skew between client and server RPC payloads.
Related errors
- cause
- %s
- %v is not valid IP
- expect to write %d bytes for RPC stream protocol signature,
- expect to write %d bytes for RPC stream protocol signature,
AI-assisted analysis of cloudflare/cloudflared@2253eeeb25 (2026-09-06).
Data as JSON: /api/errors/73d1b04bfeff4e08.
Report an issue: GitHub.