{"record":{"id":"c8504e696ebb4c30","repo":"cloudflare/cloudflared","slug":"invalid-client-message-type-was-provided-s","errorCode":null,"errorMessage":"invalid client message type was provided: %s","messagePattern":"invalid client message type was provided: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"management/events.go","lineNumber":273,"sourceCode":"\n// ReadEvent will read a message from the websocket connection and parse it into a valid ClientEvent.\nfunc ReadClientEvent(c *websocket.Conn, ctx context.Context) (*ClientEvent, error) {\n\tmessage, err := readMessage(c, ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tevent := ClientEvent{}\n\tif err := json.Unmarshal(message, &event); err != nil {\n\t\treturn nil, err\n\t}\n\tswitch event.Type {\n\tcase StartStreaming, StopStreaming:\n\t\tevent.event = message\n\t\treturn &event, nil\n\tcase UnknownClientEventType:\n\t\treturn nil, errInvalidMessageType\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"invalid client message type was provided: %s\", event.Type)\n\t}\n}\n\n// readMessage will read a message from the websocket connection and return the payload.\nfunc readMessage(c *websocket.Conn, ctx context.Context) ([]byte, error) {\n\tmessageType, reader, err := c.Reader(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif messageType != websocket.MessageText {\n\t\treturn nil, errInvalidMessageType\n\t}\n\treturn io.ReadAll(reader)\n}\n\n// WriteEvent will write a Event type message to the websocket connection.\nfunc WriteEvent(c *websocket.Conn, ctx context.Context, event any) error {\n\tpayload, err := json.Marshal(event)","sourceCodeStart":255,"sourceCodeEnd":291,"githubUrl":"https://github.com/cloudflare/cloudflared/blob/2253eeeb25a44a713a4b60b8ba1e1b3f377d1a0f/management/events.go#L255-L291","documentation":"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.","triggerScenarios":"Thrown at management/events.go:273 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2253eeeb25a44a713a4b60b8ba1e1b3f377d1a0f","analyzedAt":"2026-09-06T04:14:33.757Z","contentChangedAt":"2026-09-06T04:14:33.757Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}