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

  1. Log the raw event.Type to identify the unsupported server message.
  2. Upgrade cloudflared — the server may be emitting a newer event type.
  3. 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.