earendil-works/pi · error
Anthropic stream ended before message_stop
Error message
Anthropic stream ended before message_stop
What it means
Error "Anthropic stream ended before message_stop" thrown in earendil-works/pi.
Source
Thrown at packages/ai/src/api/anthropic-messages.ts:497
try {
const event = parseJsonWithRepair<RawMessageStreamEvent>(sse.data);
if (event.type === "message_start") {
sawMessageStart = true;
} else if (event.type === "message_stop") {
sawMessageEnd = true;
}
yield event;
} catch (error) {
const message = error instanceof Error ? error.message : String(error);
throw new Error(
`Could not parse Anthropic SSE event ${sse.event}: ${message}; data=${sse.data}; raw=${sse.raw.join("\\n")}`,
);
}
}
if (sawMessageStart && !sawMessageEnd) {
throw new Error("Anthropic stream ended before message_stop");
}
}
export const stream: StreamFunction<"anthropic-messages", AnthropicOptions> = (
model: Model<"anthropic-messages">,
context: Context,
options?: AnthropicOptions,
): AssistantMessageEventStream => {
const stream = new AssistantMessageEventStream();
(async () => {
const output: AssistantMessage = {
role: "assistant",
content: [],
api: model.api as Api,
provider: model.provider,
model: model.id,
usage: {View on GitHub (pinned to 4af9d21d3b)
Solutions
- Retry the request; if persistent, check for network or proxy truncation of the SSE stream.
When it happens
Trigger: Thrown at packages/ai/src/api/anthropic-messages.ts:497 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24).
Data as JSON: /api/errors/e54d94ed9e6fe7b9.
Report an issue: GitHub.