earendil-works/pi · error
Unhandled stop reason: ${reason}
Error message
Unhandled stop reason: ${reason} What it means
Error "Unhandled stop reason: ${reason}" thrown in earendil-works/pi.
Source
Thrown at packages/ai/src/api/anthropic-messages.ts:1389
return { stopReason: "stop" };
case "max_tokens":
return { stopReason: "length" };
case "tool_use":
return { stopReason: "toolUse" };
case "refusal":
return {
stopReason: "error",
errorMessage: stopDetails?.explanation || `The model refused to complete the request`,
};
case "pause_turn": // Stop is good enough -> resubmit
return { stopReason: "stop" };
case "stop_sequence":
return { stopReason: "stop" }; // We don't supply stop sequences, so this should never happen
case "sensitive": // Content flagged by safety filters (not yet in SDK types)
return { stopReason: "error", errorMessage: "Provider stopped with: sensitive" };
default:
// Handle unknown stop reasons gracefully (API may add new values)
throw new Error(`Unhandled stop reason: ${reason}`);
}
}
View on GitHub (pinned to 4af9d21d3b)
Solutions
- Add handling for the new Anthropic stop reason in the switch statement.
When it happens
Trigger: Thrown at packages/ai/src/api/anthropic-messages.ts:1389 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/f635d9deb9a2a3fa.
Report an issue: GitHub.