🛠️ fix: billing session error handling for subscription-first fallback.

Aligns the error variable types in the subscription-first path so that quota fallback checks use the correct NewAPIError.
This prevents build failures and preserves the intended wallet fallback when subscription pre-consume returns an insufficient quota error.
This commit is contained in:
t0ng7u
2026-02-07 01:03:49 +08:00
parent 4fd8d033cd
commit 743b9278c4
+7 -7
View File
@@ -323,19 +323,19 @@ func NewBillingSession(c *gin.Context, relayInfo *relaycommon.RelayInfo, preCons
case "subscription_first": case "subscription_first":
fallthrough fallthrough
default: default:
hasSub, err := model.HasActiveUserSubscription(relayInfo.UserId) hasSub, subCheckErr := model.HasActiveUserSubscription(relayInfo.UserId)
if err != nil { if subCheckErr != nil {
return nil, types.NewError(err, types.ErrorCodeQueryDataError, types.ErrOptionWithSkipRetry()) return nil, types.NewError(subCheckErr, types.ErrorCodeQueryDataError, types.ErrOptionWithSkipRetry())
} }
if !hasSub { if !hasSub {
return tryWallet() return tryWallet()
} }
session, err := trySubscription() session, apiErr := trySubscription()
if err != nil { if apiErr != nil {
if err.GetErrorCode() == types.ErrorCodeInsufficientUserQuota { if apiErr.GetErrorCode() == types.ErrorCodeInsufficientUserQuota {
return tryWallet() return tryWallet()
} }
return nil, err return nil, apiErr
} }
return session, nil return session, nil
} }