[PR #22809] Added a check to ensure the input text is a string before proceeding with parsing #30064

Closed
opened 2026-02-21 20:46:46 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/22809

State: closed
Merged: Yes


Important

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

fix #22798
This pull request introduces improvements to error handling and input validation in two key areas of the codebase: parsing logic for suggested questions and message transformation in workflow nodes. These changes enhance robustness by ensuring inputs are properly validated and meaningful errors are raised when issues are detected.

Error handling improvements in input parsing:

Input validation in workflow nodes:

  • api/core/workflow/nodes/tool/tool_node.py: Replaced assertions with explicit validation for the meta dictionary in FILE messages. Added checks to ensure the meta dictionary contains a 'file' key and that its value is an instance of File. If these conditions are not met, meaningful ToolNodeError exceptions are raised.

Screenshots

Before After
... ...

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/22809 **State:** closed **Merged:** Yes --- > [!IMPORTANT] > > 1. Make sure you have read our [contribution guidelines](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) > 2. Ensure there is an associated issue and you have been assigned to it > 3. Use the correct syntax to link this PR: `Fixes #<issue number>`. ## Summary fix #22798 This pull request introduces improvements to error handling and input validation in two key areas of the codebase: parsing logic for suggested questions and message transformation in workflow nodes. These changes enhance robustness by ensuring inputs are properly validated and meaningful errors are raised when issues are detected. ### Error handling improvements in input parsing: * [`api/core/llm_generator/output_parser/suggested_questions_after_answer.py`](diffhunk://#diff-8fd19dc132ba4a0a9291392cdad63ae43b3cfd5f90c2adf9d670f28d66e046bcR13-L18): Added a check to ensure the input `text` is a string before proceeding with parsing. If the input is not a string, an empty list is returned, and a warning can optionally be logged. ### Input validation in workflow nodes: * [`api/core/workflow/nodes/tool/tool_node.py`](diffhunk://#diff-8081ca7604dec95cdeb68c247a4f688ff8a630cfe48ddcc68beb6b95f063c842L320-R326): Replaced assertions with explicit validation for the `meta` dictionary in `FILE` messages. Added checks to ensure the `meta` dictionary contains a `'file'` key and that its value is an instance of `File`. If these conditions are not met, meaningful `ToolNodeError` exceptions are raised. ## Screenshots | Before | After | |--------|-------| | ... | ... | ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:46:46 -05:00
yindo closed this issue 2026-02-21 20:46:46 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#30064