René's URL Explorer Experiment


Title: In Streamable HTTP transport, the sendNotification calls are getting timed out. · Issue #396 · modelcontextprotocol/java-sdk · GitHub

Open Graph Title: In Streamable HTTP transport, the sendNotification calls are getting timed out. · Issue #396 · modelcontextprotocol/java-sdk

X Title: In Streamable HTTP transport, the sendNotification calls are getting timed out. · Issue #396 · modelcontextprotocol/java-sdk

Description: Bug description When sending a JSON-RPC notification using the MCP Java SDK's sendNotification method (with the Streamable HTTP transport), a timeout occurs if the server does not return any response body or headers. This happens even th...

Open Graph Description: Bug description When sending a JSON-RPC notification using the MCP Java SDK's sendNotification method (with the Streamable HTTP transport), a timeout occurs if the server does not return any respon...

X Description: Bug description When sending a JSON-RPC notification using the MCP Java SDK's sendNotification method (with the Streamable HTTP transport), a timeout occurs if the server does not return any re...

Opengraph URL: https://github.com/modelcontextprotocol/java-sdk/issues/396

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"In Streamable HTTP transport, the sendNotification calls are getting timed out.","articleBody":"**Bug description**\n\nWhen sending a JSON-RPC notification using the MCP Java SDK's sendNotification method (with the Streamable HTTP transport), a timeout occurs if the server does not return any response body or headers. This happens even though notifications should not expect a response from the server. As a result, the returned Mono never completes, causing the client to hang or timeout.\n\n**Environment**\nMCP Java SDK version: Built the JAR on top of July 4 commit.\nJava version: 17\nOS: Windows\n\n**Steps to reproduce**\n1. Use the MCP Java SDK with the Streamable HTTP transport.\n2. Call client.initialize() to send initialization message through which a notifications/initialized notification will be sent to a MCP server that does not return a response for notifications (as per spec).\n3. Observe that a timeout occurs and the Mono returned by sendNotification never completes.\nExpected behavior\n4. The notification should be sent and the returned Mono should complete successfully, even if the server does not return any response. No timeout should occur.\n\n**Minimal Complete Reproducible example**\n```\nMcpClientTransport transport;\n\t\tString url = \"http://localhost:6009\";\n\t\tHttpClientStreamableHttpTransport.Builder httpBuilder = HttpClientStreamableHttpTransport.builder(url);\n\t\thttpBuilder.endpoint(\"/mcp/\");\n\t\ttransport = httpBuilder.build();\n\n\t\tMcpSyncClient client = McpClient.sync(transport)\n\t\t\t\t.requestTimeout(Duration.ofSeconds(20)) // Set a reasonable request timeout\n\t\t\t\t.initializationTimeout(Duration.ofSeconds(21)) // Set a reasonable initialization timeout\n\t\t\t\t.build();\n\n\t\ttry {\n\t\t\t// Initialize the connection\n\t\t\tclient.initialize();\n\n\t\t\tMcpSchema.ListToolsResult tools = client.listTools();\n\t\t\tlogger.log(Level.INFO, \"Available tools: {0}\", tools.tools());\n\n\t\t} catch (Exception e) {\n\t\t\tlogger.log(Level.SEVERE, \"Failed to initialize MCP client from DebugServlet\", e);\n\t\t}\n```\n\n**Workaround I did to fix it (which may not be proper):**\n\n```\npublic Mono\u003cVoid\u003e sendMessage(McpSchema.JSONRPCMessage sendMessage) {\n\t\tlogger.warning(\"DEBUG:: sendMessage called with message: \" + sendMessage);\n\t\treturn Mono.create(messageSink -\u003e {\n\t\t\tlogger.log(Level.INFO, \"Sending message {}\", sendMessage);\n\n\t\t\tfinal AtomicReference\u003cDisposable\u003e disposableRef = new AtomicReference\u003c\u003e();\n\t\t\tfinal McpTransportSession\u003cDisposable\u003e transportSession = this.activeSession.get();\n\n\t\t\tHttpRequest.Builder requestBuilder = this.requestBuilder.copy();\n\n\t\t\tif (transportSession != null \u0026\u0026 transportSession.sessionId().isPresent()) {\n\t\t\t\trequestBuilder = requestBuilder.header(\"mcp-session-id\", transportSession.sessionId().get());\n\t\t\t}\n\n\t\t\tString jsonBody = this.toString(sendMessage);\n\n\t\t\tHttpRequest request = requestBuilder.uri(Utils.resolveUri(this.baseUri, this.endpoint))\n\t\t\t\t.header(\"Accept\", TEXT_EVENT_STREAM + \", \" + APPLICATION_JSON)\n\t\t\t\t.header(\"Content-Type\", APPLICATION_JSON)\n\t\t\t\t.header(\"Cache-Control\", \"no-cache\")\n\t\t\t\t.POST(HttpRequest.BodyPublishers.ofString(jsonBody))\n\t\t\t\t.build();\n\n\t\t\tDisposable connection;\n\t\t\tif (sendMessage instanceof McpSchema.JSONRPCNotification) {\n\t\t\t\tlogger.log(Level.WARNING, \"DEBUG::: Sending notification message, no response expected\");\n\t\t\t\t// For notifications, complete the Mono immediately after sending the request\n\t\t\t\tMono.fromFuture(this.httpClient.sendAsync(request, this.toSendMessageBodySubscriber(null)))\n\t\t\t\t\t\t.doOnSuccess(response -\u003e messageSink.success())\n\t\t\t\t\t\t.doOnError(messageSink::error)\n\t\t\t\t\t\t.subscribe();\n\t\t\t\tconnection = null;\n\t\t\t} else {\n\t\t\t\tconnection = Flux.\u003cResponseEvent\u003ecreate(responseEventSink -\u003e {\n\n\t\t\t\t\t\t\t// Create the async request with proper body subscriber selection\n\t\t\t\t\t\t\tMono.fromFuture(this.httpClient.sendAsync(request, this.toSendMessageBodySubscriber(responseEventSink))\n\t\t\t\t\t\t\t\t\t.whenComplete((response, throwable) -\u003e {\n\t\t\t\t\t\t\t\t\t\tif (throwable != null) {\n\t\t\t\t\t\t\t\t\t\t\tresponseEventSink.error(throwable);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tlogger.log(Level.FINE, \"SSE connection established successfully\");\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})).onErrorMap(CompletionException.class, t -\u003e t.getCause()).onErrorComplete().subscribe();\n\n\t\t\t\t\t\t}).flatMap(responseEvent -\u003e {\n\t\t\t\t\t\t\tif (transportSession.markInitialized(\n\t\t\t\t\t\t\t\t\tresponseEvent.responseInfo().headers().firstValue(\"mcp-session-id\").orElseGet(() -\u003e null))) {\n\t\t\t\t\t\t\t\t// Once we have a session, we try to open an async stream for\n\t\t\t\t\t\t\t\t// the server to send notifications and requests out-of-band.\n\n\t\t\t\t\t\t\t\treconnect(null).contextWrite(messageSink.contextView()).subscribe();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tString sessionRepresentation = sessionIdOrPlaceholder(transportSession);\n\n\t\t\t\t\t\t\tint statusCode = responseEvent.responseInfo().statusCode();\n\n\t\t\t\t\t\t\tif (statusCode \u003e= 200 \u0026\u0026 statusCode \u003c 300) {\n\n\t\t\t\t\t\t\t\tString contentType = responseEvent.responseInfo()\n\t\t\t\t\t\t\t\t\t\t.headers()\n\t\t\t\t\t\t\t\t\t\t.firstValue(\"Content-Type\")\n\t\t\t\t\t\t\t\t\t\t.orElse(\"\")\n\t\t\t\t\t\t\t\t\t\t.toLowerCase();\n\n\t\t\t\t\t\t\t\tif (contentType.isBlank()) {\n\t\t\t\t\t\t\t\t\tlogger.log(Level.INFO, \"No content type returned for POST in session {}\", sessionRepresentation);\n\t\t\t\t\t\t\t\t\treturn Flux.empty();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (contentType.contains(TEXT_EVENT_STREAM)) {\n\t\t\t\t\t\t\t\t\treturn Flux.just(((ResponseSubscribers.SseResponseEvent) responseEvent).sseEvent())\n\t\t\t\t\t\t\t\t\t\t\t.flatMap(sseEvent -\u003e {\n\t\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// We don't support batching ATM and probably won't\n\t\t\t\t\t\t\t\t\t\t\t\t\t// since the\n\t\t\t\t\t\t\t\t\t\t\t\t\t// next version considers removing it.\n\t\t\t\t\t\t\t\t\t\t\t\t\tMcpSchema.JSONRPCMessage message = McpSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.deserializeJsonRpcMessage(this.objectMapper, sseEvent.data());\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tTuple2\u003cOptional\u003cString\u003e, Iterable\u003cMcpSchema.JSONRPCMessage\u003e\u003e idWithMessages = Tuples\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.of(Optional.ofNullable(sseEvent.id()), List.of(message));\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tMcpTransportStream\u003cDisposable\u003e sessionStream = new DefaultMcpTransportStream\u003c\u003e(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.resumableStreams, this::reconnect);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tlogger.log(Level.FINE, \"Connected stream {}\", sessionStream.streamId());\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tmessageSink.success();\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn Flux.from(sessionStream.consumeSseStream(Flux.just(idWithMessages)));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcatch (IOException ioException) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn Flux.\u003cMcpSchema.JSONRPCMessage\u003eerror(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnew McpError(\"Error parsing JSON-RPC message: \" + sseEvent.data()));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (contentType.contains(APPLICATION_JSON)) {\n\t\t\t\t\t\t\t\t\tmessageSink.success();\n\t\t\t\t\t\t\t\t\tString data = ((ResponseSubscribers.AggregateResponseEvent) responseEvent).data();\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\treturn Mono.just(McpSchema.deserializeJsonRpcMessage(objectMapper, data));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (IOException e) {\n\t\t\t\t\t\t\t\t\t\treturn Mono.error(e);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlogger.log(Level.WARNING, \"Unknown media type {0} returned for POST in session {1}\", new Object[]{contentType,\n\t\t\t\t\t\t\t\t\t\tsessionRepresentation});\n\n\t\t\t\t\t\t\t\treturn Flux.\u003cMcpSchema.JSONRPCMessage\u003eerror(\n\t\t\t\t\t\t\t\t\t\tnew RuntimeException(\"Unknown media type returned: \" + contentType));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (statusCode == NOT_FOUND) {\n\t\t\t\t\t\t\t\tMcpTransportSessionNotFoundException exception = new McpTransportSessionNotFoundException(\n\t\t\t\t\t\t\t\t\t\t\"Session not found for session ID: \" + sessionRepresentation);\n\t\t\t\t\t\t\t\treturn Flux.\u003cMcpSchema.JSONRPCMessage\u003eerror(exception);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Some implementations can return 400 when presented with a\n\t\t\t\t\t\t\t// session id that it doesn't know about, so we will\n\t\t\t\t\t\t\t// invalidate the session\n\t\t\t\t\t\t\t// https://github.com/modelcontextprotocol/typescript-sdk/issues/389\n\t\t\t\t\t\t\telse if (statusCode == BAD_REQUEST) {\n\t\t\t\t\t\t\t\tMcpTransportSessionNotFoundException exception = new McpTransportSessionNotFoundException(\n\t\t\t\t\t\t\t\t\t\t\"Session not found for session ID: \" + sessionRepresentation);\n\t\t\t\t\t\t\t\treturn Flux.\u003cMcpSchema.JSONRPCMessage\u003eerror(exception);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn Flux.\u003cMcpSchema.JSONRPCMessage\u003eerror(\n\t\t\t\t\t\t\t\t\tnew RuntimeException(\"Failed to send message: \" + responseEvent));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.flatMap(jsonRpcMessage -\u003e this.handler.get().apply(Mono.just(jsonRpcMessage)))\n\t\t\t\t\t\t.onErrorMap(CompletionException.class, t -\u003e t.getCause())\n\t\t\t\t\t\t.onErrorComplete(t -\u003e {\n\t\t\t\t\t\t\t// handle the error first\n\t\t\t\t\t\t\tthis.handleException(t);\n\t\t\t\t\t\t\t// inform the caller of sendMessage\n\t\t\t\t\t\t\tmessageSink.error(t);\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.doFinally(s -\u003e {\n\t\t\t\t\t\t\tlogger.log(Level.FINE, \"SendMessage finally: {}\", s);\n\t\t\t\t\t\t\tDisposable ref = disposableRef.getAndSet(null);\n\t\t\t\t\t\t\tif (ref != null) {\n\t\t\t\t\t\t\t\ttransportSession.removeConnection(ref);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.contextWrite(messageSink.contextView())\n\t\t\t\t\t\t.subscribe();\n\t\t\t}\n\n\n\n\t\t\tif (connection != null) {\n\t\t\t\tdisposableRef.set(connection);\n\t\t\t\ttransportSession.addConnection(connection);\n\t\t\t}\n\t\t});\n\t}\n```\n\nNote: Posting this here to help fix this bug early. We are eagerly waiting for the release of Streamable Http client / server support from you guys. Appreciate your efforts!","author":{"url":"https://github.com/bharat-avn-14416","@type":"Person","name":"bharat-avn-14416"},"datePublished":"2025-07-14T12:37:48.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":9},"url":"https://github.com/396/java-sdk/issues/396"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:43b54cd9-b627-1ffe-afc6-d81eb8328898
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id894C:7A74F:24DAAFF:312F84A:6A5D7E6A
html-safe-nonce1bd6d9abd5a858b2290e0b85fea64f5a9284edfa6f14756bded87162a08782f5
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4OTRDOjdBNzRGOjI0REFBRkY6MzEyRjg0QTo2QTVEN0U2QSIsInZpc2l0b3JfaWQiOiIzOTUwNTc2NzYyNDkzOTU5Nzg2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac7b21cb81e04fb3cd6b47b5c1d25b319786918bbddcef97c94cf5682b8a815c68
hovercard-subject-tagissue:3228627187
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/modelcontextprotocol/java-sdk/396/issue_layout
twitter:imagehttps://opengraph.githubassets.com/f36bec98cf8c495f7cd13c212eb3e3eb61ebddcccb57edf50ed20e1674eb7587/modelcontextprotocol/java-sdk/issues/396
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/f36bec98cf8c495f7cd13c212eb3e3eb61ebddcccb57edf50ed20e1674eb7587/modelcontextprotocol/java-sdk/issues/396
og:image:altBug description When sending a JSON-RPC notification using the MCP Java SDK's sendNotification method (with the Streamable HTTP transport), a timeout occurs if the server does not return any respon...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamebharat-avn-14416
hostnamegithub.com
expected-hostnamegithub.com
None5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b
turbo-cache-controlno-preview
go-importgithub.com/modelcontextprotocol/java-sdk git https://github.com/modelcontextprotocol/java-sdk.git
octolytics-dimension-user_id182288589
octolytics-dimension-user_loginmodelcontextprotocol
octolytics-dimension-repository_id919609219
octolytics-dimension-repository_nwomodelcontextprotocol/java-sdk
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id919609219
octolytics-dimension-repository_network_root_nwomodelcontextprotocol/java-sdk
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9c975978430e9ad293956f2bbdaf153b1bd84a99
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/modelcontextprotocol/java-sdk/issues/396#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fjava-sdk%2Fissues%2F396
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fjava-sdk%2Fissues%2F396
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=modelcontextprotocol%2Fjava-sdk
Reloadhttps://github.com/modelcontextprotocol/java-sdk/issues/396
Reloadhttps://github.com/modelcontextprotocol/java-sdk/issues/396
Reloadhttps://github.com/modelcontextprotocol/java-sdk/issues/396
Please reload this pagehttps://github.com/modelcontextprotocol/java-sdk/issues/396
modelcontextprotocol https://github.com/modelcontextprotocol
java-sdkhttps://github.com/modelcontextprotocol/java-sdk
Notifications https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fjava-sdk
Fork 978 https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fjava-sdk
Star 3.6k https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fjava-sdk
Code https://github.com/modelcontextprotocol/java-sdk
Issues 135 https://github.com/modelcontextprotocol/java-sdk/issues
Pull requests 147 https://github.com/modelcontextprotocol/java-sdk/pulls
Discussions https://github.com/modelcontextprotocol/java-sdk/discussions
Actions https://github.com/modelcontextprotocol/java-sdk/actions
Projects https://github.com/modelcontextprotocol/java-sdk/projects
Models https://github.com/modelcontextprotocol/java-sdk/models
Security and quality 2 https://github.com/modelcontextprotocol/java-sdk/security
Insights https://github.com/modelcontextprotocol/java-sdk/pulse
Code https://github.com/modelcontextprotocol/java-sdk
Issues https://github.com/modelcontextprotocol/java-sdk/issues
Pull requests https://github.com/modelcontextprotocol/java-sdk/pulls
Discussions https://github.com/modelcontextprotocol/java-sdk/discussions
Actions https://github.com/modelcontextprotocol/java-sdk/actions
Projects https://github.com/modelcontextprotocol/java-sdk/projects
Models https://github.com/modelcontextprotocol/java-sdk/models
Security and quality https://github.com/modelcontextprotocol/java-sdk/security
Insights https://github.com/modelcontextprotocol/java-sdk/pulse
Bughttps://github.com/modelcontextprotocol/java-sdk/issues?q=type:"Bug"
In Streamable HTTP transport, the sendNotification calls are getting timed out.https://github.com/modelcontextprotocol/java-sdk/issues/396#top
https://github.com/tzolov
P1Significant bug affecting many users, highly requested featurehttps://github.com/modelcontextprotocol/java-sdk/issues?q=state%3Aopen%20label%3A%22P1%22
bugSomething isn't workinghttps://github.com/modelcontextprotocol/java-sdk/issues?q=state%3Aopen%20label%3A%22bug%22
needs confirmationhttps://github.com/modelcontextprotocol/java-sdk/issues?q=state%3Aopen%20label%3A%22needs%20confirmation%22
waiting for userWaiting for user feedback or more detailshttps://github.com/modelcontextprotocol/java-sdk/issues?q=state%3Aopen%20label%3A%22waiting%20for%20user%22
https://github.com/bharat-avn-14416
bharat-avn-14416https://github.com/bharat-avn-14416
on Jul 14, 2025https://github.com/modelcontextprotocol/java-sdk/issues/396#issue-3228627187
tzolovhttps://github.com/tzolov
P1Significant bug affecting many users, highly requested featurehttps://github.com/modelcontextprotocol/java-sdk/issues?q=state%3Aopen%20label%3A%22P1%22
bugSomething isn't workinghttps://github.com/modelcontextprotocol/java-sdk/issues?q=state%3Aopen%20label%3A%22bug%22
needs confirmationhttps://github.com/modelcontextprotocol/java-sdk/issues?q=state%3Aopen%20label%3A%22needs%20confirmation%22
waiting for userWaiting for user feedback or more detailshttps://github.com/modelcontextprotocol/java-sdk/issues?q=state%3Aopen%20label%3A%22waiting%20for%20user%22
Bughttps://github.com/modelcontextprotocol/java-sdk/issues?q=type:"Bug"
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.