Tools
rmcp returned HTTP 200 for handler-generated HeaderMismatch errors on the Streamable HTTP path
PR #1259, merged 2026-09-12, found that `jsonrpc_http_status` mapped unsupported protocol version, missing client capability and invalid params to HTTP 400 but fell through to the default HTTP 200 for `ErrorCode::HEADER_MISMATCH`. A `ServerHandler` returning `Err(ErrorData::header_mismatch(...))` therefore serialized a correct JSON-RPC -32020 error and shipped it with a success status. The legacy transport-generated path was unaffected because it builds its 400 response directly.
Source
↳ Follow the thread