fix: replace bare raise in _original_tool_calling to prevent RuntimeError#6556
Open
nankingjing wants to merge 1 commit into
Open
fix: replace bare raise in _original_tool_calling to prevent RuntimeError#6556nankingjing wants to merge 1 commit into
nankingjing wants to merge 1 commit into
Conversation
A bare `raise` outside an except block in the non-dict arguments branch of ToolUsage._original_tool_calling() raises `RuntimeError: No active exception to re-raise` instead of a meaningful tool-arguments error. Raise ToolUsageError with the existing i18n message, mirroring the raise_error=False branch. Fixes crewAIInc#6430
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthrough
ChangesTool argument error handling
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #6430
Bare
raiseinToolUsage._original_tool_calling()causesRuntimeError: No active exception to re-raisewhen the non-dict-arguments path is reached withraise_error=True, because no exception is active on that path (the preceding try/except completed normally). This is a latent landmine that triggers when the model struggles with parameter formatting, and it breaks the fallback logic in_tool_calling(), which relies on catching a meaningful exception.Also flagged by
ruff check --select PLE0704.Fix: Replace the bare
raisewithraise ToolUsageError(...)using the existing i18ntool_arguments_errormessage, mirroring theraise_error=Falsebranch.Test: Added a regression test (
test_original_tool_calling_non_dict_arguments_raises_tool_usage_error) that forces_validate_tool_inputto return a non-dict and assertsToolUsageErroris raised withraise_error=True(and returned withraise_error=False) instead of a crypticRuntimeError.Note: this contribution was made with AI assistance — per CONTRIBUTING.md it needs the
llm-generatedlabel, which I can't set myself.