fix(tools): raise ToolUsageError instead of bare raise for non-dict arguments#6495
Open
ashusnapx wants to merge 1 commit into
Open
fix(tools): raise ToolUsageError instead of bare raise for non-dict arguments#6495ashusnapx wants to merge 1 commit into
ashusnapx wants to merge 1 commit into
Conversation
…rguments Closes crewAIInc#6430 _original_tool_calling() contained a bare `raise` on the non-dict arguments path (line 853) outside any except block. When _validate_tool_input returned a non-dict and raise_error=True, this produced RuntimeError: No active exception to re-raise instead of the intended ToolUsageError. Replace with explicit `raise ToolUsageError(...)`. The except block above (line 846-848) correctly uses bare `raise` inside an active exception context — left unchanged. Also resolves ruff PLE0704 (bare raise not inside exception handler). Tests: 4 new regression tests covering the non-dict branch with both raise_error settings, the _tool_calling fallback flow, and verification that RuntimeError is never raised. All 32 tests in test_tool_usage.py pass. ruff clean.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe ChangesBare Raise Fix
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 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.
Summary
Fixes
RuntimeError: No active exception to re-raiseinToolUsage._original_tool_calling()when_validate_tool_inputreturns a non-dict andraise_error=True.Closes #6430
Problem
_original_tool_calling()attool_usage.py:853had a bareraiseoutside anyexceptblock:When this path was hit with
raise_error=True, Python raisedRuntimeError: No active exception to re-raiseinstead of the intendedToolUsageError. The_tool_calling()fallback relies on catching a meaningful exception to trigger its retry logic, so this produced a confusing RuntimeError.Also flagged by
ruff check --select PLE0704.Fix
Replace bare
raisewith explicitraise ToolUsageError(...):The
exceptblock above (line 846-848) correctly uses bareraiseinside an active exception context — left unchanged.Tests (4 new)
test_original_tool_calling_non_dict_raises_tool_usage_errorraise_error=TrueraisesToolUsageError, notRuntimeErrortest_original_tool_calling_non_dict_returns_errorraise_error=FalsereturnsToolUsageErrortest_tool_calling_fallback_on_non_dict_tool_callingflow falls back gracefullytest_non_dict_raises_not_runtime_errorToolUsageError, notRuntimeErrorAll 32 tests in
test_tool_usage.pypass.ruff check --select PLE0704clean.Verification
Summary by CodeRabbit
Bug Fixes
Tests