fix: move internal500 counter reset to cover all success paths

Move the reset logic after urlFallbackLoop so it covers both direct
success and smart retry (429/503) success paths.
This commit is contained in:
erio
2026-03-24 20:24:06 +08:00
parent 093a5a260e
commit 7cca69a136

View File

@@ -802,13 +802,7 @@ urlFallbackLoop:
break urlFallbackLoop
}
// 成功响应(< 400:清零 INTERNAL 500 连续失败计数器
if s.internal500Cache != nil {
if err := s.internal500Cache.ResetInternal500Count(p.ctx, p.account.ID); err != nil {
slog.Error("internal500_counter_reset_failed",
"prefix", p.prefix, "account_id", p.account.ID, "error", err)
}
}
// 成功响应(< 400
break urlFallbackLoop
}
}
@@ -817,6 +811,14 @@ urlFallbackLoop:
antigravity.DefaultURLAvailability.MarkSuccess(usedBaseURL)
}
// 成功响应时清零 INTERNAL 500 连续失败计数器(覆盖所有成功路径,含 smart retry
if resp != nil && resp.StatusCode < 400 && s.internal500Cache != nil {
if err := s.internal500Cache.ResetInternal500Count(p.ctx, p.account.ID); err != nil {
slog.Error("internal500_counter_reset_failed",
"prefix", p.prefix, "account_id", p.account.ID, "error", err)
}
}
return &antigravityRetryLoopResult{resp: resp}, nil
}