From 673caf41a02946a6562848f0b887ffdeeed39e8c Mon Sep 17 00:00:00 2001 From: Zero Clover Date: Mon, 2 Feb 2026 18:50:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E5=B0=86=20USER=5FINACTIVE=20?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=8E=92=E9=99=A4=E5=9C=A8=20SLA=20=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E4=B9=8B=E5=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将账户停用 (USER_INACTIVE) 导致的请求失败视为业务限制类错误,不计入 SLA 和错误率统计。 账户停用是预期内的业务结果,不应被视为系统错误或服务质量问题。此改动使错误分类更加准确,避免将预期的业务限制误报为系统故障。 修改内容: - 在 classifyOpsIsBusinessLimited 函数中添加 USER_INACTIVE 错误码 - 该类错误不再触发错误率告警 Fixes Wei-Shaw/sub2api#453 --- backend/internal/handler/ops_error_logger.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/internal/handler/ops_error_logger.go b/backend/internal/handler/ops_error_logger.go index f62e6b3e..4dc0a9cc 100644 --- a/backend/internal/handler/ops_error_logger.go +++ b/backend/internal/handler/ops_error_logger.go @@ -905,7 +905,7 @@ func classifyOpsIsRetryable(errType string, statusCode int) bool { func classifyOpsIsBusinessLimited(errType, phase, code string, status int, message string) bool { switch strings.TrimSpace(code) { - case "INSUFFICIENT_BALANCE", "USAGE_LIMIT_EXCEEDED", "SUBSCRIPTION_NOT_FOUND", "SUBSCRIPTION_INVALID": + case "INSUFFICIENT_BALANCE", "USAGE_LIMIT_EXCEEDED", "SUBSCRIPTION_NOT_FOUND", "SUBSCRIPTION_INVALID", "USER_INACTIVE": return true } if phase == "billing" || phase == "concurrency" {