diegosouzapw/OmniRoute · error · ClaudeWebProtocolError

Claude Web stream ended without a terminal event

Error message

Claude Web stream ended without a terminal event

What it means

Error "Claude Web stream ended without a terminal event" thrown in diegosouzapw/OmniRoute.

Source

Thrown at open-sse/executors/claude-web/stream.ts:720

}

async function pullStreamingChunk(
  state: StreamingState,
  options: ClaudeWebStreamOptions,
  controller: ReadableStreamDefaultController<Uint8Array>
): Promise<void> {
  if (state.closed || flushStreamChunk(state, controller)) return;
  if (state.terminal) {
    closeStreamIfDrained(state, controller);
    return;
  }

  try {
    while (!state.terminal) {
      const next = await state.iterator.next();
      if (state.control.cancelled) return;
      if (next.done === true) {
        throw new ClaudeWebProtocolError("Claude Web stream ended without a terminal event");
      }
      await queueSemanticEvent(state, next.value, options);
      if (state.pendingChunks.length > 0) {
        flushStreamChunk(state, controller);
        return;
      }
    }
  } catch {
    if (state.control.cancelled) return;
    queueStreamFailure(state, options);
    flushStreamChunk(state, controller);
  }
}

async function cancelStreaming(
  state: StreamingState,
  options: ClaudeWebStreamOptions,
  reason: unknown

View on GitHub (pinned to a179ffed5b)

When it happens

Trigger: Thrown at open-sse/executors/claude-web/stream.ts:720 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25). Data as JSON: /api/errors/cd304504f4c1fda1. Report an issue: GitHub.