






















@@ -276,13 +276,13 @@ function failoverReasonFromClassification(
276276return classification?.kind === "reason" ? classification.reason : null;
277277}
278278279-function normalizeErrorSignal(err: unknown): FailoverSignal {
279+function normalizeErrorSignal(err: unknown, providerHint?: string): FailoverSignal {
280280const message = getErrorMessage(err);
281281return {
282282status: getStatusCode(err),
283283code: getErrorCode(err),
284284message: message || undefined,
285-provider: getProvider(err),
285+provider: getProvider(err) ?? providerHint,
286286};
287287}
288288@@ -342,6 +342,7 @@ function resolveFailoverClassificationFromErrorInternal(
342342err: unknown,
343343seen: Set<object>,
344344depth: number,
345+providerHint?: string,
345346): FailoverClassification | null {
346347if (depth > MAX_FAILOVER_CAUSE_DEPTH) {
347348return null;
@@ -358,7 +359,7 @@ function resolveFailoverClassificationFromErrorInternal(
358359reason: err.reason,
359360};
360361}
361-const signal = normalizeErrorSignal(err);
362+const signal = normalizeErrorSignal(err, providerHint);
362363const codeReason = signal.code
363364 ? failoverReasonFromClassification(classifyFailoverSignal({ code: signal.code }))
364365 : null;
@@ -376,6 +377,7 @@ function resolveFailoverClassificationFromErrorInternal(
376377candidate,
377378seen,
378379depth + 1,
380+providerHint,
379381);
380382if (nestedClassification) {
381383if (hasSessionLock && !hasExplicitFailoverMetadata) {
@@ -423,12 +425,20 @@ function resolveFailoverClassificationFromErrorInternal(
423425return null;
424426}
425427426-function resolveFailoverClassificationFromError(err: unknown): FailoverClassification | null {
427-return resolveFailoverClassificationFromErrorInternal(err, new Set<object>(), 0);
428+function resolveFailoverClassificationFromError(
429+err: unknown,
430+providerHint?: string,
431+): FailoverClassification | null {
432+return resolveFailoverClassificationFromErrorInternal(err, new Set<object>(), 0, providerHint);
428433}
429434430-export function resolveFailoverReasonFromError(err: unknown): FailoverReason | null {
431-return failoverReasonFromClassification(resolveFailoverClassificationFromError(err));
435+export function resolveFailoverReasonFromError(
436+err: unknown,
437+providerHint?: string,
438+): FailoverReason | null {
439+return failoverReasonFromClassification(
440+resolveFailoverClassificationFromError(err, providerHint),
441+);
432442}
433443434444export function describeFailoverError(err: unknown): {
@@ -481,7 +491,7 @@ export function coerceToFailoverError(
481491if (isFailoverError(err)) {
482492return err;
483493}
484-const reason = resolveFailoverReasonFromError(err);
494+const reason = resolveFailoverReasonFromError(err, context?.provider);
485495if (!reason) {
486496return null;
487497}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。