Discard handler return value in exception handling to prevent polluting raw_response#309
Open
TheRealNeil wants to merge 1 commit intoactiveagents:mainfrom
Open
Discard handler return value in exception handling to prevent polluting raw_response#309TheRealNeil wants to merge 1 commit intoactiveagents:mainfrom
TheRealNeil wants to merge 1 commit intoactiveagents:mainfrom
Conversation
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.
Discard handler return value in exception handling to prevent polluting raw_response
Fixes #305
Summary
nilreturn afterrescue_with_handlerinwith_exception_handlingto prevent the handler's return value leaking intoraw_responseRoot cause
When an exception occurs during
api_prompt_execute,with_exception_handlingreturns whatever the rescue handler returns (often a truthy value like a String frombroadcast_error). This becomesraw_responseinresolve_prompt, which then causes a secondaryNoMethodError: undefined method 'usage' for an instance of String— swallowing the real error.Fix
Return
nilexplicitly afterrescue_with_handler(exception) || raise. This ensuresraw_responseis alwaysnilwhen an exception has been handled, preventing the secondary error while still letting the agent'srescue_fromchain handle the original exception.Test plan
rescue_fromhandler that returns a truthy value and confirm no secondaryNoMethodErroronusagerescue_fromhandlers are still invoked correctly