From fd40828950a998d494b15e3ce2e0e50f7f2fd29e Mon Sep 17 00:00:00 2001 From: Andy Huynh Date: Tue, 21 Jul 2026 09:23:55 +0700 Subject: [PATCH] guard against non-dict entries in words array --- litellm/llms/elevenlabs/audio_transcription/transformation.py | 4 ++++ .../test_elevenlabs_audio_transcription_transformation.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/litellm/llms/elevenlabs/audio_transcription/transformation.py b/litellm/llms/elevenlabs/audio_transcription/transformation.py index ddce3eb4a8a..a27826c5049 100644 --- a/litellm/llms/elevenlabs/audio_transcription/transformation.py +++ b/litellm/llms/elevenlabs/audio_transcription/transformation.py @@ -130,6 +130,8 @@ class ElevenLabsAudioTranscriptionConfig(BaseAudioTranscriptionConfig): if "words" in response_json: response["words"] = [] for word_data in response_json["words"]: + if not isinstance(word_data, dict): + continue # Only include actual words, skip spacing and audio events if word_data.get("type") == "word": response["words"].append( @@ -146,6 +148,8 @@ class ElevenLabsAudioTranscriptionConfig(BaseAudioTranscriptionConfig): # instead of 0. duration = 0.0 for word_data in response_json.get("words") or []: + if not isinstance(word_data, dict): + continue try: duration = max(duration, float(word_data.get("end") or 0.0)) except (TypeError, ValueError): diff --git a/tests/test_litellm/llms/elevenlabs/audio_transcription/test_elevenlabs_audio_transcription_transformation.py b/tests/test_litellm/llms/elevenlabs/audio_transcription/test_elevenlabs_audio_transcription_transformation.py index a38bace855f..4b4bcc3689f 100644 --- a/tests/test_litellm/llms/elevenlabs/audio_transcription/test_elevenlabs_audio_transcription_transformation.py +++ b/tests/test_litellm/llms/elevenlabs/audio_transcription/test_elevenlabs_audio_transcription_transformation.py @@ -58,6 +58,8 @@ class TestElevenLabsTransformResponse: "words": [ {"type": "word", "text": "hello", "start": 0.0, "end": None}, {"type": "word", "text": "x", "start": 0.0, "end": "bad"}, + None, + "not-a-dict", {"type": "word", "text": "y", "start": 0.0, "end": 2.5}, ], }