diff --git a/backend/internal/service/antigravity_gateway_service.go b/backend/internal/service/antigravity_gateway_service.go index bd8b2c2a..6ba94ee2 100644 --- a/backend/internal/service/antigravity_gateway_service.go +++ b/backend/internal/service/antigravity_gateway_service.go @@ -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 }