paperclipai/paperclip · error

Cloudflare sandbox bridge streaming response had no body.

Error message

Cloudflare sandbox bridge streaming response had no body.

What it means

Error "Cloudflare sandbox bridge streaming response had no body." thrown in paperclipai/paperclip.

Solutions

  1. Retry the streaming request; if it persists, check the bridge version and proxy buffering settings.

When it happens

Trigger: Thrown at packages/plugins/sandbox-providers/cloudflare/src/bridge-client.ts:227 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18). Data as JSON: /api/errors/ab76d37ee8f248ee. Report an issue: GitHub.

Appendix: source

Thrown at packages/plugins/sandbox-providers/cloudflare/src/bridge-client.ts:227

      if (line.startsWith("data:")) {
        dataLines.push(line.slice("data:".length).trimStart());
      }
    }
    events.push({
      event,
      data: dataLines.join("\n"),
    });
  }

  return { events, rest };
}

async function consumeExecuteEventStream(
  response: Response,
  options: BridgeExecuteOptions,
): Promise<CloudflareBridgeExecuteResponse> {
  if (!response.body) {
    throw new Error("Cloudflare sandbox bridge streaming response had no body.");
  }

  const reader = response.body.getReader();
  const decoder = new TextDecoder();
  let buffer = "";
  let result: CloudflareBridgeExecuteResponse | null = null;

  while (true) {
    const { done, value } = await reader.read();
    buffer += decoder.decode(value ?? new Uint8Array(), { stream: !done });
    const parsed = parseSseChunk(done && buffer.length > 0 ? `${buffer}\n\n` : buffer);
    buffer = parsed.rest;

    for (const event of parsed.events) {
      if (event.event === "stdout" || event.event === "stderr") {
        const payload = JSON.parse(event.data) as { data?: unknown };
        const chunk = typeof payload.data === "string" ? payload.data : "";
        if (chunk) {

View on GitHub (pinned to 120ae5428f)