When the responses endpoint fails and the chat.completions fallback also fails (raises or returns empty), the original responses error was captured in fallback_reason but never surfaced. Wrap the fallback call in its own try/except and re-raise a RuntimeError that chains both errors with context, so users see why both endpoints failed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>