@@ -70,14 +70,15 @@ class OpenrouterAdapter: try: data_obj = json.loads(data) - content_chunk = data_obj['choices'][0]['delta'].get('content') or '' - reasoning_chunk = data_obj['choices'][0]['delta'].get('reasoning') or '' - if content_chunk: - content += content_chunk - yield RawSSEChunk(event='token', data={'content': content_chunk}) - if reasoning_chunk: - reasoning += reasoning_chunk - yield RawSSEChunk(event='think', data={'content': reasoning_chunk}) + if data_obj.get('choices'): + content_chunk = data_obj['choices'][0].get('delta', {}).get('content') or '' + reasoning_chunk = data_obj['choices'][0].get('delta', {}).get('reasoning') or '' + if content_chunk: + content += content_chunk + yield RawSSEChunk(event='token', data={'content': content_chunk}) + if reasoning_chunk: + reasoning += reasoning_chunk + yield RawSSEChunk(event='think', data={'content': reasoning_chunk}) if data_obj.get('usage'): input_tokens = data_obj['usage']['prompt_tokens'] output_tokens = data_obj['usage']['completion_tokens']