Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

mcp: rejected request IDs receive no JSON-RPC error envelope

Abierto
#1,391 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@skosovsky ya está trabajando en esto.

Desde el 12/10/2026.

  • #1392 de @skosovsky — abierto
  • #1399 de @Totopo27 — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
go
Área
api, backend

Línea de trabajo

Start with the StreamableHTTPHandler and IO/stdio request decoding and read paths; the issue does not name specific files or tests. Reproduce the invalid-ID request on both transports, then inspect how each handles decoder rejection and frames errors. Done means both return an Invalid Request (-32600) envelope with id null, HTTP uses 400 and application/json, IO/stdio continues to the following valid request, and the rejected request is not dispatched.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Problem

A syntactically valid, single JSON-RPC request with an ID rejected by the decoder does not receive a JSON-RPC error response:

{"jsonrpc":"2.0","id":true,"method":"ping"}

On upstream main d1a225e:

  • Streamable HTTP returns HTTP 400 with a text/plain body beginning malformed payload, rather than a JSON-RPC error envelope.
  • The IO/stdio transport returns parse error: invalid ID type bool from Read, writes no response, and does not deliver the subsequent valid request in that read call. The connection read loop treats this as a terminal read error.

The same behavior occurs for object and array IDs. These cases reproduce independently of the pending numeric-ID precision fixes.

Expected behavior

For a single request whose ID cannot be accepted, return a JSON-RPC Invalid Request error (-32600) with an explicit id: null. Over HTTP, use HTTP 400 and application/json. Over IO/stdio, write the error and continue reading subsequent valid messages. Do not dispatch the rejected request.

The response ID requirement comes from https://www.jsonrpc.org/specification#response_object. This report concerns structurally invalid IDs, not a new numeric range policy.

Reproduction

HTTP: POST the above body to a StreamableHTTPHandler with Content-Type application/json and Accept application/json, text/event-stream.

IO/stdio: feed the above JSON followed by a newline and {"jsonrpc":"2.0","id":7,"method":"ping"}. The current transport returns an error without writing a JSON-RPC response.

Regression tests reproduce both failures on the unmodified base. Repeating the invalid frame 1000 times before a valid request tests iterative recovery.

Related work and scope

  • #1209 / #1210 concern syntactically malformed JSON and decoder resynchronization. Here JSON decoding succeeds, so that recovery machinery is unnecessary.
  • #976 concerns other malformed request envelopes.
  • #1375 / #1253 address exact numeric identity parsing. Once a numeric ID is rejected by those decoders, it needs the same error framing. This change can be reviewed independently and does not redefine numeric acceptance.

Legacy batch handling, invalid response handling, absent/null request IDs, and malformed JSON recovery are outside this narrowly scoped fix.

Lenguaje dominante
Go
Estrellas
5.2k
Forks
583
Merge medio
1 d 12 h
PR fusionados (30 d)
52

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de modelcontextprotocol/go-sdk

Todos los issues de modelcontextprotocol/go-sdk

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.