Bug: ToolPromptMessage.is_empty logic inverted (treats invalid/valid messages incorrectly) #18552

Closed
opened 2026-02-21 19:49:06 -05:00 by yindo · 0 comments
Owner

Originally created by @LNZ001 on GitHub (Sep 29, 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.9.0

Cloud or Self Hosted

Self Hosted (Source)

Steps to reproduce

  1. Define a ToolPromptMessage with content present but missing tool_call_id.
  2. Call is_empty() and observe the return value.
  3. Define a ToolPromptMessage with content present and a valid tool_call_id.
  4. Call is_empty() and observe the return value.

✔️ Expected Behavior

  1. A ToolPromptMessage should be considered empty if either:
  • content is missing/empty or

  • tool_call_id is missing/empty.

  1. A ToolPromptMessage should be considered not empty only when both:
  • content is present and

  • tool_call_id is present.

Actual Behavior

With the current implementation:

  • When content exists but tool_call_id is missing, is_empty() returns False (not empty) — this should be empty.

  • When both content and tool_call_id exist, is_empty() returns True (empty) — this should be not empty.

Originally created by @LNZ001 on GitHub (Sep 29, 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.9.0 ### Cloud or Self Hosted Self Hosted (Source) ### Steps to reproduce 1. Define a ToolPromptMessage with content present but missing tool_call_id. 2. Call is_empty() and observe the return value. 3. Define a ToolPromptMessage with content present and a valid tool_call_id. 4. Call is_empty() and observe the return value. ### ✔️ Expected Behavior 1. A ToolPromptMessage should be considered empty if either: - content is missing/empty or - tool_call_id is missing/empty. 2. A ToolPromptMessage should be considered not empty only when both: - content is present and - tool_call_id is present. ### ❌ Actual Behavior With the current implementation: - When content exists but tool_call_id is missing, is_empty() returns False (not empty) — this should be empty. - When both content and tool_call_id exist, is_empty() returns True (empty) — this should be not empty.
yindo added the 🐞 bug label 2026-02-21 19:49:06 -05:00
yindo closed this issue 2026-02-21 19:49:06 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#18552