MCPcopy Index your code
hub / github.com/anomalyco/opencode / fromError

Function fromError

packages/opencode/src/session/message-v2.ts:603–731  ·  view source on GitHub ↗
(
  e: unknown,
  ctx: { providerID: ProviderV2.ID; aborted?: boolean },
)

Source from the content-addressed store, hash-verified

601}
602
603export function fromError(
604 e: unknown,
605 ctx: { providerID: ProviderV2.ID; aborted?: boolean },
606): NonNullable<Assistant["error"]> {
607 switch (true) {
608 case e instanceof DOMException && e.name === "AbortError":
609 return new AbortedError(
610 { message: e.message },
611 {
612 cause: e,
613 },
614 ).toObject()
615 case OutputLengthError.isInstance(e):
616 return e
617 case LoadAPIKeyError.isInstance(e):
618 return new AuthError(
619 {
620 providerID: ctx.providerID,
621 message: e.message,
622 },
623 { cause: e },
624 ).toObject()
625 case (e as SystemError)?.code === "ECONNRESET":
626 return new APIError(
627 {
628 message: "Connection reset by server",
629 isRetryable: true,
630 metadata: {
631 code: (e as SystemError).code ?? "",
632 syscall: (e as SystemError).syscall ?? "",
633 message: (e as SystemError).message ?? "",
634 },
635 },
636 { cause: e },
637 ).toObject()
638 case e instanceof Error && (e as FetchDecompressionError).code === "ZlibError":
639 if (ctx.aborted) {
640 return new AbortedError({ message: e.message }, { cause: e }).toObject()
641 }
642 return new APIError(
643 {
644 message: "Response decompression failed",
645 isRetryable: true,
646 metadata: {
647 code: (e as FetchDecompressionError).code,
648 message: e.message,
649 },
650 },
651 { cause: e },
652 ).toObject()
653 case e instanceof ProviderError.HeaderTimeoutError:
654 return new APIError(
655 {
656 message: e.message,
657 isRetryable: true,
658 metadata: {
659 code: e.name,
660 timeoutMs: String(e.ms),

Callers

nothing calls this directly

Calls 3

errorMessageFunction · 0.90
toObjectMethod · 0.45
isInstanceMethod · 0.45

Tested by

no test coverage detected