tool invoke error: read tool response failed: request failed: Query variable is not string type. #15534

Closed
opened 2026-02-21 19:22:10 -05:00 by yindo · 1 comment
Owner

Originally created by @JarsirLiu on GitHub (Jul 21, 2025).

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.5

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

The agent node call encountered an error when invoking the custom knowledge retrieval workflow:
{
"action_input": {
"query": "Service records basic functionality"
},
"action_name": "retrial_doc",
"observation": "tool invoke error: read tool response failed: request failed: Query variable is not string type.",
"thought": ""
}
When testing the knowledge retrieval workflow separately, it can retrieve content normally.

✔️ Expected Behavior

The agent node call encountered an error when invoking the custom knowledge retrieval workflow:
{
"action_input": {
"query": "Service records basic functionality"
},
"action_name": "retrial_doc",
"observation": "tool invoke error: read tool response failed: request failed: Query variable is not string type.",
"thought": ""
}
When testing the knowledge retrieval workflow separately, it can retrieve content normally.

Actual Behavior

No response

Originally created by @JarsirLiu on GitHub (Jul 21, 2025). ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.5 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce The agent node call encountered an error when invoking the custom knowledge retrieval workflow: { "action_input": { "query": "Service records basic functionality" }, "action_name": "retrial_doc", "observation": "tool invoke error: read tool response failed: request failed: Query variable is not string type.", "thought": "" } When testing the knowledge retrieval workflow separately, it can retrieve content normally. ### ✔️ Expected Behavior The agent node call encountered an error when invoking the custom knowledge retrieval workflow: { "action_input": { "query": "Service records basic functionality" }, "action_name": "retrial_doc", "observation": "tool invoke error: read tool response failed: request failed: Query variable is not string type.", "thought": "" } When testing the knowledge retrieval workflow separately, it can retrieve content normally. ### ❌ Actual Behavior _No response_
yindo added the 🔨 feat:tools label 2026-02-21 19:22:10 -05:00
yindo closed this issue 2026-02-21 19:22:10 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Jul 21, 2025):

The error happens because the knowledge retrieval workflow expects the query variable to be a string, but when invoked via the agent node, the input type may not be strictly enforced as a string. The workflow node checks for a string type (StringSegment), and if it receives anything else (like an object or null), it fails with this error message reference.

When you test the workflow directly, the UI or API likely normalizes the input, so you don't see the error. But when the agent node calls the workflow as a tool, it passes the action_input as-is, and strict type validation is enforced reference.

To fix this, make sure that the query field in your agent's action_input is always a string. Double-check any code or configuration that builds the agent's tool call to ensure it doesn't wrap the string in an object or array, and that it never passes null or an empty object. If you are dynamically building the input, explicitly cast or serialize the value to a string before passing it to the agent node.

Recent Dify versions have stricter input validation, so this type of error will surface if the input is not exactly as expected reference. If you continue to see this error, review any custom logic or integrations that might alter the input type before it reaches the workflow.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jul 21, 2025): <!-- Answer --> The error happens because the knowledge retrieval workflow expects the `query` variable to be a string, but when invoked via the agent node, the input type may not be strictly enforced as a string. The workflow node checks for a string type (`StringSegment`), and if it receives anything else (like an object or null), it fails with this error message [reference](https://github.com/langgenius/dify/blob/8fa3b3f9315f8cf87fc0ea5de4dff6c0fde10a96/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py). When you test the workflow directly, the UI or API likely normalizes the input, so you don't see the error. But when the agent node calls the workflow as a tool, it passes the `action_input` as-is, and strict type validation is enforced [reference](https://github.com/langgenius/dify/blob/8fa3b3f9315f8cf87fc0ea5de4dff6c0fde10a96/api/core/agent/cot_agent_runner.py). To fix this, make sure that the `query` field in your agent's `action_input` is always a string. Double-check any code or configuration that builds the agent's tool call to ensure it doesn't wrap the string in an object or array, and that it never passes `null` or an empty object. If you are dynamically building the input, explicitly cast or serialize the value to a string before passing it to the agent node. Recent Dify versions have stricter input validation, so this type of error will surface if the input is not exactly as expected [reference](https://github.com/langgenius/dify/issues/22179). If you continue to see this error, review any custom logic or integrations that might alter the input type before it reaches the workflow. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/22202d14-8615-4bb4-a284-95224664aeb9?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/22202d14-8615-4bb4-a284-95224664aeb9?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/22202d14-8615-4bb4-a284-95224664aeb9?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/22202d14-8615-4bb4-a284-95224664aeb9?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/22202d14-8615-4bb4-a284-95224664aeb9?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/22202d14-8615-4bb4-a284-95224664aeb9?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/22202d14-8615-4bb4-a284-95224664aeb9?feedback_type=other)</sup>&nbsp;&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/22720)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#15534