Skip to content

[Bug]: Usage pydantic parsing bug (nonblocking) #125

@whoisjayd

Description

@whoisjayd

Pre-flight Checklist

  • I searched existing issues and did not find a duplicate.
  • I read the README and relevant docs first.
  • I removed sensitive information (API keys, personal data) from logs.

Reproduction Steps

AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
complete_streaming_response = self._get_assembled_streaming_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
if isinstance(result.response.usage, ResponseAPIUsage):
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
complete_streaming_response = self._get_assembled_streaming_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
if isinstance(result.response.usage, ResponseAPIUsage):
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
complete_streaming_response = self._get_assembled_streaming_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
if isinstance(result.response.usage, ResponseAPIUsage):
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'

Expected Behavior

No Error

Actual Behavior

Error Shown

Version

latest

Python Version

Operating System

Windows11

Model Used

chatgpt/gpt-5.4

Area

area:llm

Severity

severity:low

Priority

priority:low

Log Output

pydantic\main.py:464: UserWarning: Pydantic serializer warnings:
  PydanticSerializationUnexpectedValue(Expected `ResponsesAPIResponse` - serialized value may not be as expected [field_name='response', input_value={'id': 'resp_bGl0ZWxsbTpj...': None, 'metadata': {}},
input_type=dict])
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
╭──────────────────────────────────────────────────────

Relevant Config (Sanitized)

No response

Metadata

Metadata

Labels

area:llmLLM providers, prompts, and generationpriority:lowLow priorityseverity:lowMinor impacttriageNeeds maintainer triagetype:bugSomething is not working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions