cloudflare/cloudflared · error
invalid server message type was provided: %s
Error message
invalid server message type was provided: %s
What it means
Protocol error from ReadServerEvent: the server event decoded successfully but its 'type' is a recognized-but-unhandled non-empty string (anything other than the supported server events like Logs). cloudflared does not know how to interpret this management server message kind.
Source
Thrown at management/events.go:252
// ReadEvent will read a message from the websocket connection and parse it into a valid ServerEvent.
func ReadServerEvent(c *websocket.Conn, ctx context.Context) (*ServerEvent, error) {
message, err := readMessage(c, ctx)
if err != nil {
return nil, err
}
event := ServerEvent{}
if err := json.Unmarshal(message, &event); err != nil {
return nil, err
}
switch event.Type {
case Logs:
event.event = message
return &event, nil
case UnknownServerEventType:
return nil, errInvalidMessageType
default:
return nil, fmt.Errorf("invalid server message type was provided: %s", event.Type)
}
}
// ReadEvent will read a message from the websocket connection and parse it into a valid ClientEvent.
func ReadClientEvent(c *websocket.Conn, ctx context.Context) (*ClientEvent, error) {
message, err := readMessage(c, ctx)
if err != nil {
return nil, err
}
event := ClientEvent{}
if err := json.Unmarshal(message, &event); err != nil {
return nil, err
}
switch event.Type {
case StartStreaming, StopStreaming:
event.event = message
return &event, nil
case UnknownClientEventType:View on GitHub (pinned to 2253eeeb25)
Solutions
- Log the raw event.Type to identify the unsupported server message.
- Upgrade cloudflared — the server may be emitting a newer event type.
- In streaming loops, treat this as a non-fatal skip unless the type is required.
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at management/events.go:252 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of cloudflare/cloudflared@2253eeeb25 (2026-09-06).
Data as JSON: /api/errors/8991c1b150ec6ba6.
Report an issue: GitHub.