Fix error handling in convert_to_model_response_object to handle empty error objects #18419
+117
−13
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.
Relevant issues
Fixes #18407
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
[X] I have Added testing in the tests/litellm/ directory, Adding at least 1 test is a hard requirement
[X] My PR passes all unit tests on make test-unit
[X] My PR's scope is as isolated as possible, it only solves 1 specific problem
CI (LiteLLM team)
CI status guideline:
50-55 passing tests: main is stable with minor issues.
45-49 passing tests: acceptable but needs attention
<= 40 passing tests: unstable; be careful with your merges and assess the risk.
Branch creation CI run
Link:
CI run for the last commit
Link:
Merge / cherry-pick CI run
Links:
Type
🐛 Bug Fix
Changes
Modified convert_to_model_response_object in convert_dict_to_response.py to handle cases where providers (e.g., Minimax) return an empty error object (no message and no code) on successful responses. Previously, the mere presence of an error key would trigger an exception.
Added comprehensive unit tests in
tests/llm_translation/test_llm_response_utils/test_empty_error_handling.py handling.py) to verify: