{"record":{"id":"a58918d6f6cab740","repo":"eclipse-vertx/vert.x","slug":"unsupported-websocket-msg-frame","errorCode":null,"errorMessage":"Unsupported WebSocket msg ${frame}","messagePattern":"Unsupported WebSocket msg (.+?)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"vertx-core/src/main/java/io/vertx/core/http/impl/websocket/WebSocketImplBase.java","lineNumber":335,"sourceCode":"  }\n\n  private io.netty.handler.codec.http.websocketx.WebSocketFrame encodeFrame(WebSocketFrameImpl frame) {\n    ByteBuf buf = safeBuffer(frame.getBinaryData());\n    switch (frame.type()) {\n      case BINARY:\n        return new BinaryWebSocketFrame(frame.isFinal(), 0, buf);\n      case TEXT:\n        return new TextWebSocketFrame(frame.isFinal(), 0, buf);\n      case CLOSE:\n        return new CloseWebSocketFrame(true, 0, buf);\n      case CONTINUATION:\n        return new ContinuationWebSocketFrame(frame.isFinal(), 0, buf);\n      case PONG:\n        return new PongWebSocketFrame(buf);\n      case PING:\n        return new PingWebSocketFrame(buf);\n      default:\n        throw new IllegalStateException(\"Unsupported WebSocket msg \" + frame);\n    }\n  }\n\n  void checkClosed() {\n    if (isClosed()) {\n      throw new IllegalStateException(\"WebSocket is closed\");\n    }\n  }\n\n  public boolean isClosed() {\n    synchronized (this) {\n      return closed || closeStatusCode != null;\n    }\n  }\n\n  void handleFrame(WebSocketFrameInternal frame) {\n    switch (frame.type()) {\n      case PING:","sourceCodeStart":317,"sourceCodeEnd":353,"githubUrl":"https://github.com/eclipse-vertx/vert.x/blob/fb308bd8c3f12c79f4ae89bef67fadf6c80d036e/vertx-core/src/main/java/io/vertx/core/http/impl/websocket/WebSocketImplBase.java#L317-L353","documentation":"Encoding dispatch guard in WebSocketImplBase.encodeFrame: the outgoing WebSocketFrameImpl's type matched none of the cases mapping Vert.x frames to Netty frames (BINARY, TEXT, CLOSE, CONTINUATION, PONG, PING). The frame is appended to the message; this signals an unknown/extension frame type rather than payload problems.","triggerScenarios":"Thrown at vertx-core/src/main/java/io/vertx/core/http/impl/websocket/WebSocketImplBase.java:335 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Send frames built with the standard WebSocketFrame factory methods","Upgrade Vert.x if a newer frame type should be supported"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fb308bd8c3f12c79f4ae89bef67fadf6c80d036e","analyzedAt":"2026-09-06T11:37:12.241Z","contentChangedAt":"2026-09-06T11:37:12.241Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}