#32562 [Bug]: MCP gateway streaming ends with no terminal event when tool execution or the follow-up LLM call fails
### What happened?
In MCP gateway streaming with auto-execution (`require_approval: never`), two mid-stream failure classes are swallowed by `MCPEnhancedStreamingIterator`:
1. **Tool execution fails as a batch** (`_generate_tool_execution_events` catches, sets `tool_results = []`): the iterator then proceeds to make a follow-up call carrying `function_call` items with **no `function_call_output` items**, which the provider rejects with `"No tool output found for function call ..."` — and that failure is swallowed too. 2. **The follow-up LLM call fails** (`_create_follow_up_iterator` catches, sets `base_iterator = None`): the stream just ends.
In both cases the client receives HTTP 200 and a stream that looks like a truncated success: `mcp_call` events, then silence. No `error` event, no `response.failed`, no final text. Client-side this is indistinguishable from a completed-but-empty answer; the actual failure only exists in proxy stderr.
Captured event sequence (harness driving the real iterator, main @ 999637883c), tools succeed then follow-up 400s:
``` response.output_item.added response.mcp_list_tools.in_progress response.mcp_list_tools.completed response.completed …