-
Notifications
You must be signed in to change notification settings - Fork 1.5k
this is a bug for spring-ai-mcp-client of deepseek-v3 by flux type #3297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Can you provide a bit structured steps like this: #3017 ex: steps to reproduce, and if it is possible reproducible example somewhere. |
tool without params,and use flux client |
yes the deepseek-v3 stream result ,first message has no tool content , next three mesaage contain tool info. so the spring-ai-mcp-client throw excepion . |
this is spring-ai-mcp-client exceptions
-23T10:49:28.676+08:00 ERROR 99079 --- [mcp] [nio-8083-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] threw exception
com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1]
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) ~[jackson-databind-2.17.3.jar:2.17.3]
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4996) ~[jackson-databind-2.17.3.jar:2.17.3]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4898) ~[jackson-databind-2.17.3.jar:2.17.3]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3848) ~[jackson-databind-2.17.3.jar:2.17.3]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3831) ~[jackson-databind-2.17.3.jar:2.17.3]
at org.springframework.ai.model.ModelOptionsUtils.jsonToMap(ModelOptionsUtils.java:104) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.model.ModelOptionsUtils.jsonToMap(ModelOptionsUtils.java:92) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.mcp.AsyncMcpToolCallback.call(AsyncMcpToolCallback.java:109) ~[spring-ai-mcp-1.0.0-20250519.092143-444.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.mcp.AsyncMcpToolCallback.call(AsyncMcpToolCallback.java:123) ~[spring-ai-mcp-1.0.0-20250519.092143-444.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.model.tool.DefaultToolCallingManager.lambda$executeToolCall$5(DefaultToolCallingManager.java:224) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at io.micrometer.observation.Observation.observe(Observation.java:565) ~[micrometer-observation-1.13.8.jar:1.13.8]
at org.springframework.ai.model.tool.DefaultToolCallingManager.executeToolCall(DefaultToolCallingManager.java:221) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.model.tool.DefaultToolCallingManager.executeToolCalls(DefaultToolCallingManager.java:137) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.openai.OpenAiChatModel.lambda$internalStream$10(OpenAiChatModel.java:369) ~[spring-ai-openai-1.0.0-RC1.jar:1.0.0-RC1]
at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:46) ~[reactor-core-3.6.12.jar:3.6.12]
at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194) ~[reactor-core-3.6.12.jar:3.6.12]
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) ~[reactor-core-3.6.12.jar:3.6.12]
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) ~[reactor-core-3.6.12.jar:3.6.12]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-05-23T10:49:28.677+08:00 ERROR 99079 --- [mcp] [nio-8083-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1]] with root cause
com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1]
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) ~[jackson-databind-2.17.3.jar:2.17.3]
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4996) ~[jackson-databind-2.17.3.jar:2.17.3]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4898) ~[jackson-databind-2.17.3.jar:2.17.3]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3848) ~[jackson-databind-2.17.3.jar:2.17.3]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3831) ~[jackson-databind-2.17.3.jar:2.17.3]
at org.springframework.ai.model.ModelOptionsUtils.jsonToMap(ModelOptionsUtils.java:104) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.model.ModelOptionsUtils.jsonToMap(ModelOptionsUtils.java:92) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.mcp.AsyncMcpToolCallback.call(AsyncMcpToolCallback.java:109) ~[spring-ai-mcp-1.0.0-20250519.092143-444.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.mcp.AsyncMcpToolCallback.call(AsyncMcpToolCallback.java:123) ~[spring-ai-mcp-1.0.0-20250519.092143-444.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.model.tool.DefaultToolCallingManager.lambda$executeToolCall$5(DefaultToolCallingManager.java:224) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at io.micrometer.observation.Observation.observe(Observation.java:565) ~[micrometer-observation-1.13.8.jar:1.13.8]
at org.springframework.ai.model.tool.DefaultToolCallingManager.executeToolCall(DefaultToolCallingManager.java:221) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.model.tool.DefaultToolCallingManager.executeToolCalls(DefaultToolCallingManager.java:137) ~[spring-ai-model-1.0.0-20250519.092550-306.jar:1.0.0-SNAPSHOT]
at org.springframework.ai.openai.OpenAiChatModel.lambda$internalStream$10(OpenAiChatModel.java:369) ~[spring-ai-openai-1.0.0-RC1.jar:1.0.0-RC1]
at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:46) ~[reactor-core-3.6.12.jar:3.6.12]
at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194) ~[reactor-core-3.6.12.jar:3.6.12]
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) ~[reactor-core-3.6.12.jar:3.6.12]
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) ~[reactor-core-3.6.12.jar:3.6.12]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
next is deepseek see retuen message:
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":""},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":""},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":""},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":""},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":""},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":""},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":""},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"8a5b36c19de14f9ea2f4402b9346429c","type":"function","index":0,"function":{"name":"mcp_sampling_server_server1_getTemperature","arguments":""}}]},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"8a5b36c19de14f9ea2f4402b9346429c","type":"function","index":0,"function":{"arguments":"{"latitude"}}]},"flag":0}]}
data: {"id":"as-5fx5jbf139","object":"chat.completion.chunk","created":1747968878,"model":"deepseek-v3","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"8a5b36c19de14f9ea2f4402b9346429c","type":"function","index":0,"function":{"arguments":"":39"}}]},"flag":0}]}
The text was updated successfully, but these errors were encountered: