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:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user