fix: 创建标题429错误 — subscription_plan=pro不在配额表中导致所有配额limit为0 #1261

Closed
opened 2026-08-07 14:51:29 +08:00 by xiaoxia · 0 comments
Owner

问题现象

staging环境创建标题返回429: 标题库配额已满(1/0),请升级套餐。

根因

  1. 测试账号subscription_plan字段值为"pro"
  2. packages/domain/quota.py的QUOTA_TIERS只定义了free/basic/premium三个套餐
  3. "pro"不在配额表中 → QuotaRegistry.get_tier("pro")返回None → get_limit返回0
  4. 当前已有1条标题,1>=0 → allowed=False → QuotaExceededError
  5. 不仅标题,该用户所有配额检查都会因limit=0而失败

修复方案

  1. 在QUOTA_TIERS中添加"pro"套餐(与premium相同)
  2. QuotaRegistry.get_tier()对未知套餐fallback到"free"而非None(防御性)

涉及文件

  • packages/domain/quota.py
  • apps/api/app/api/routes/_helpers.py(可选,get_user_plan映射pro→premium)
## 问题现象 staging环境创建标题返回429: 标题库配额已满(1/0),请升级套餐。 ## 根因 1. 测试账号subscription_plan字段值为"pro" 2. packages/domain/quota.py的QUOTA_TIERS只定义了free/basic/premium三个套餐 3. "pro"不在配额表中 → QuotaRegistry.get_tier("pro")返回None → get_limit返回0 4. 当前已有1条标题,1>=0 → allowed=False → QuotaExceededError 5. 不仅标题,该用户所有配额检查都会因limit=0而失败 ## 修复方案 1. 在QUOTA_TIERS中添加"pro"套餐(与premium相同) 2. QuotaRegistry.get_tier()对未知套餐fallback到"free"而非None(防御性) ## 涉及文件 - packages/domain/quota.py - apps/api/app/api/routes/_helpers.py(可选,get_user_plan映射pro→premium)
xiaoxia added the bugbackendP0 labels 2026-08-07 14:51:29 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: xiaoxia/xiaoxia-saas#1261