Open
Description
Describe the bug
When using witsy-mcp-client, I'm having this error :
14:39:50.999 [DefaultDispatcher-worker-16] INFO io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- New SSE connection established with sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
14:39:51.002 [DefaultDispatcher-worker-16] DEBUG io.modelcontextprotocol.kotlin.sdk.server.Server -- Initializing MCP server with capabilities: ServerCapabilities(experimental={}, sampling={}, logging={}, prompts=null, resources=null, tools=Tools(listChanged=true))
14:39:51.002 [DefaultDispatcher-worker-16] INFO io.modelcontextprotocol.kotlin.sdk.server.Server -- Registering tool: test
14:39:51.002 [DefaultDispatcher-worker-16] DEBUG io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- Server instance created and stored for sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
14:39:51.006 [DefaultDispatcher-worker-18] DEBUG io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- Received message for sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
14:39:51.036 [DefaultDispatcher-worker-18] INFO io.modelcontextprotocol.kotlin.sdk.server.Server -- Handling initialize request from client Implementation(name=witsy-mcp-client, version=1.0.0)
14:39:51.045 [DefaultDispatcher-worker-16] DEBUG io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- Received message for sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
14:39:51.047 [DefaultDispatcher-worker-16] ERROR io.modelcontextprotocol.kotlin.sdk.shared.Protocol -- Error handling notification: notifications/initialized
java.util.NoSuchElementException: Key method is missing in the map.
at kotlin.collections.MapsKt__MapWithDefaultKt.getOrImplicitDefaultNullable(MapWithDefault.kt:24)
at kotlin.collections.MapsKt__MapsKt.getValue(Maps.kt:369)
at io.modelcontextprotocol.kotlin.sdk.Types_utilKt.selectClientNotificationDeserializer(types.util.kt:141)
at io.modelcontextprotocol.kotlin.sdk.Types_utilKt.access$selectClientNotificationDeserializer(types.util.kt:1)
at io.modelcontextprotocol.kotlin.sdk.NotificationPolymorphicSerializer.selectDeserializer(types.util.kt:191)
at kotlinx.serialization.json.JsonContentPolymorphicSerializer.deserialize(JsonContentPolymorphicSerializer.kt:93)
at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:345)
at kotlinx.serialization.json.internal.TreeJsonDecoderKt.readJson(TreeJsonDecoder.kt:25)
at kotlinx.serialization.json.Json.decodeFromJsonElement(Json.kt:170)
at io.modelcontextprotocol.kotlin.sdk.TypesKt.fromJSON(types.kt:1461)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$setNotificationHandler$1.invokeSuspend(Protocol.kt:470)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$setNotificationHandler$1.invoke(Protocol.kt)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$setNotificationHandler$1.invoke(Protocol.kt)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol.onNotification(Protocol.kt:198)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol.access$onNotification(Protocol.kt:93)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$connect$4.invokeSuspend(Protocol.kt:167)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$connect$4.invoke(Protocol.kt)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$connect$4.invoke(Protocol.kt)
at io.modelcontextprotocol.kotlin.sdk.server.SSEServerTransport.handleMessage(SSEServerTransport.kt:103)
at io.modelcontextprotocol.kotlin.sdk.server.SSEServerTransport.handlePostMessage(SSEServerTransport.kt:87)
at io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPluginKt$MCP$1$2.invokeSuspend(McpKtorServerPlugin.kt:50)
at io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPluginKt$MCP$1$2.invoke(McpKtorServerPlugin.kt)
at io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPluginKt$MCP$1$2.invoke(McpKtorServerPlugin.kt)
at io.ktor.server.routing.RoutingNode$buildPipeline$1$1.invokeSuspend(RoutingNode.kt:127)
at io.ktor.server.routing.RoutingNode$buildPipeline$1$1.invoke(RoutingNode.kt)
at io.ktor.server.routing.RoutingNode$buildPipeline$1$1.invoke(RoutingNode.kt)
at io.ktor.util.pipeline.PipelineJvmKt.pipelineStartCoroutineUninterceptedOrReturn(PipelineJvm.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:131)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:89)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:109)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:92)
at io.ktor.server.routing.RoutingRoot$executeResult$$inlined$execute$1.invokeSuspend(Pipeline.kt:510)
at io.ktor.server.routing.RoutingRoot$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.routing.RoutingRoot$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:19)
at io.ktor.server.routing.RoutingRoot.executeResult(RoutingRoot.kt:208)
at io.ktor.server.routing.RoutingRoot.interceptor(RoutingRoot.kt:71)
at io.ktor.server.routing.RoutingRoot$Plugin$install$1.invokeSuspend(RoutingRoot.kt:154)
at io.ktor.server.routing.RoutingRoot$Plugin$install$1.invoke(RoutingRoot.kt)
at io.ktor.server.routing.RoutingRoot$Plugin$install$1.invoke(RoutingRoot.kt)
at io.ktor.util.pipeline.PipelineJvmKt.pipelineStartCoroutineUninterceptedOrReturn(PipelineJvm.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:131)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:89)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invokeSuspend(BaseApplicationEngine.kt:117)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
at io.ktor.util.pipeline.PipelineJvmKt.pipelineStartCoroutineUninterceptedOrReturn(PipelineJvm.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:131)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:89)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:109)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:92)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:510)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:19)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invokeSuspend(DefaultEnginePipeline.kt:131)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
at io.ktor.util.pipeline.PipelineJvmKt.pipelineStartCoroutineUninterceptedOrReturn(PipelineJvm.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:131)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:89)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:109)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:92)
at io.ktor.server.cio.CIOApplicationEngine$handleRequest$2$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:488)
at io.ktor.server.cio.CIOApplicationEngine$handleRequest$2$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.cio.CIOApplicationEngine$handleRequest$2$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:19)
at io.ktor.server.cio.CIOApplicationEngine$handleRequest$2.invokeSuspend(CIOApplicationEngine.kt:229)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
14:39:51.050 [DefaultDispatcher-worker-24] DEBUG io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- Received message for sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132