fix(opencode): retry raw network finish errors (#43813)

Co-authored-by: Aiden <rekram1-node@users.noreply.github.com>
This commit is contained in:
opencode-agent[bot]
2026-08-21 02:17:35 -05:00
committed by GitHub
parent 1e4c153aed
commit e0b9e68a68
3 changed files with 125 additions and 0 deletions
@@ -2,6 +2,7 @@ import { FinishReason, LLMEvent, ProviderMetadata, ToolResultValue } from "@open
import { Effect, Schema } from "effect"
import { type streamText } from "ai"
import { errorMessage } from "@/util/error"
import { ProviderError } from "@/provider/error"
type Result = Awaited<ReturnType<typeof streamText>>
type AISDKEvent = Result["fullStream"] extends AsyncIterable<infer T> ? T : never
@@ -85,6 +86,8 @@ export function toLLMEvents(
return Effect.succeed([LLMEvent.stepStart({ index: state.step })])
case "finish-step":
if (event.rawFinishReason === "network_error")
return Effect.fail(new ProviderError.ResponseStreamError("Provider finish_reason: network_error"))
return Effect.sync(() => {
const original = providerMetadata(event.providerMetadata)
const metadata =