[HTTP+SSE] Throw the Initialization Exception Immediately for Invalid SSE Endpoint Instead of After Timeout
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- api, networking
Línea de trabajo
Comienza en HttpClientSseClientTransport y sigue cómo la solicitud POST de inicialización espera a messageEndpointSink y cómo la solicitud GET de SSE gestiona los endpoints no válidos. Reproduce los casos de un endpoint incorrecto, un servidor inexistente y un error de autorización, y verifica después que la inicialización informe del error del servidor de inmediato con su código de estado o cuerpo de respuesta, en lugar de esperar al tiempo de espera de inicialización.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Currently, when the SSE Endpoint is misconfigured, the client waits until the initialization timeout (e.g., 60s) before throwing an generic initialization exception. This causes unnecessary delays and makes debugging difficult.
Examples settings:
- If MCP Server SSE Endpoint is: http://localhost:8080/sse
- When MCP Client is configured:
- SSE Endpoint: http://localhost:8080/incorrect-sse
- Request timeout: 60s
- Initialization timeout: 60s
Behavior:
-
Calling Client.initialize() waits 60s before throwing an exception. The test code and exception are shown in the figure below:
-
Same issue occurs when:
-
The base URL points to a non-existent server. The test code and exception are shown in the figure below:
-
Access Token is misconfigured and the server requires authorization.
-
Expected Behavior
- Initialization exception should be thrown immediately when the server responds with an error (e.g., 404, 401, access denied), instead of waiting for the timeout.
- Exception should include status code and/or response body from the SSE endpoint to help diagnose configuration errors.
Technical Details
I checked the code, and the timeout issue occurs in the HttpClientSseClientTransport class when assigning the messageEndpointSink member variable. The initialization POST request keeps waiting for messageEndpointSink to be assigned. However, when the SSE Endpoint is incorrectly specified, the GET request never successfully returns the message endpoint, causing the initialization POST request to hang until the timeout occurs.
Affected Versions
- SDK 0.11.2
- SDK 0.12.1
- ...
- Lenguaje dominante
- Java
- Estrellas
- 3.7k
- Forks
- 1.1k
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 9
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de modelcontextprotocol/java-sdk
-
area/transport bug P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
modelcontextprotocol/java-sdk#1136 ·
-
area/client bug P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
modelcontextprotocol/java-sdk#1124 · 1 comentario ·
-
ServerCapabilities.logging is added unconditionally, overriding the caller's explicit capabilities Abiertobug P2 ready for work
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
modelcontextprotocol/java-sdk#1086 · 1 comentario ·
-
enhancement good first issue P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
modelcontextprotocol/java-sdk#1067 ·
-
bug P2 ready for work
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
modelcontextprotocol/java-sdk#898 · 1 comentario ·
Todos los issues de modelcontextprotocol/java-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
elastic/gradle-plugins#157 ·
-
enhancement Tools
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
apache/rocketmq-dashboard#5008 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
DETECT_PARAMETER_NAMES=false silently disables @ConstructorProperties-based Creator detection too Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
FasterXML/jackson-databind#6229 ·