Streamable HTTP server answers a session-less non-initialize POST with 422, spec says 400
Les mainteneurs répondent en général sous 2 jours
Évaluation
Cette issue n'a pas encore été évaluée.
Description
🤖 AI-generated issue, prepared with Claude Code and reviewed by the submitter.
In legacy session mode, StreamableHttpService answers a POST that has no Mcp-Session-Id header and is not initialize with 422 Unprocessable Entity (Unexpected message, expect initialize request). GET and DELETE in the same situation already return 400 Bad Request (Bad Request: Session ID is required).
The Streamable HTTP transport's Session Management section (2025-11-25, same wording in 2025-06-18) says:
Servers that require a session ID SHOULD respond to requests without an
MCP-Session-Idheader (other than initialization) with HTTP 400 Bad Request.
How it showed up: a client reconnecting after the server reaped an idle session got 404 for its stale session id, as expected, then 422 for its next session-less request before re-initializing.
Where: crates/rmcp/src/transport/streamable_http_server/tower.rs, the two session-less POST branches that return unexpected_message_response("initialize request") from transport/common/server_side_http.rs.
I have a small fix ready that returns the same 400 response GET and DELETE use, with a regression test, and will open it as a PR linked to this issue.
- Langage dominant
- Rust
- Étoiles
- 4k
- Forks
- 688
- Merge moyen
- 3 j 10 h
- PR mergées (30 j)
- 40
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de modelcontextprotocol/rust-sdk
-
auth: refresh_token() requests offline_access that was never granted, so refreshes fail with invalid_scopePeut-être pris @jstar0 l’a pris il y a 13 jours. Ouvertebug P1 ready for work T-security T-transport
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
modelcontextprotocol/rust-sdk#1330 ·
Les mainteneurs répondent en général sous 2 jours
-
P3 question Stale T-documentation T-enhancement
Difficulté 1/5 Moins d'une heure Accessibilité débutants 86/100
modelcontextprotocol/rust-sdk#1155 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Streamable HTTP server: Accept and Content-Type are matched case-sensitively and by substring/prefixPeut-être pris @DaleSeo l’a pris il y a 1 jour. Ouvertebug P1 ready for work T-transport
modelcontextprotocol/rust-sdk#1381 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
outputSchema is generated for the deserialize contract; tool results are serialisedPeut-être pris @connor4312 l’a pris il y a 5 jours. Ouvertebug P2 ready for work T-handler
modelcontextprotocol/rust-sdk#1374 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
Streamable HTTP client: update the stored endpoint URI after a 308Peut-être pris @connor4312 l’a pris il y a 5 jours. Ouverteenhancement P3 T-transport
modelcontextprotocol/rust-sdk#1373 · 4 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de modelcontextprotocol/rust-sdk
Issues similaires
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
Les mainteneurs répondent en général sous 1 jour
-
test(breg): postgres_startup needs the tooling feature its required-features does not declareOuvertearea:breg bug
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
registrystack/registry-stack#2307 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
farion1231/cc-switch#8696 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
C-bug
Difficulté 2/5 1-3 heures Accessibilité débutants 69/100
rust-lang/rust-analyzer#23547 ·
Les mainteneurs répondent en général sous 1 jour
-
tech-debt
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
OpenZeppelin/guardian#570 ·
Les mainteneurs répondent en général sous 1 jour