fix: exclude empty stop parameter from LLM completion params #4150
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.
fix: exclude empty stop parameter from LLM completion params
Summary
Fixes issue #4149 where models like GPT-5.1 throw an error: "Unsupported parameter: 'stop' is not supported with this model."
The root cause was that
_prepare_completion_paramsalways includedstopin the params dict, even when it was an empty list[]. Some models (e.g., gpt-5.1) don't support the stop parameter at all, and passing even an empty list causes an API error.Changes:
_prepare_completion_paramsto only includestopwhen it has values AND is not inadditional_drop_paramsThis also ensures the existing retry logic works correctly - when a model rejects
stop, the error handler adds"stop"toadditional_drop_params, and subsequent calls will now properly exclude it.Review & Testing Checklist for Human
Notes
LLMclass), not native providers