cloudflare/cloudflared · error
invalid client message type was provided: %s
Error message
invalid client message type was provided: %s
What it means
Protocol error from ReadClientEvent: a client message decoded but its 'type' is a non-empty string that is neither StartStreaming nor StopStreaming. The management server received a client command it does not support.
Source
Thrown at management/events.go:273
// 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:
return nil, errInvalidMessageType
default:
return nil, fmt.Errorf("invalid client message type was provided: %s", event.Type)
}
}
// readMessage will read a message from the websocket connection and return the payload.
func readMessage(c *websocket.Conn, ctx context.Context) ([]byte, error) {
messageType, reader, err := c.Reader(ctx)
if err != nil {
return nil, err
}
if messageType != websocket.MessageText {
return nil, errInvalidMessageType
}
return io.ReadAll(reader)
}
// WriteEvent will write a Event type message to the websocket connection.
func WriteEvent(c *websocket.Conn, ctx context.Context, event any) error {
payload, err := json.Marshal(event)View on GitHub (pinned to 2253eeeb25)
Solutions
- Verify the client is sending only start_streaming or stop_streaming events.
- Check for client/server version skew in the management protocol.
- Reject or log-and-skip unknown client messages server-side.
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at management/events.go:273 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/c8504e696ebb4c30.
Report an issue: GitHub.