FuzeFront
▦
DO

Quotas

Four ceilings, a fixed set. The UI warns before a create fails, so 403 QUOTA_EXCEEDED is never the first time a user hears about a limit.

Approaching your organization's list limit

Scope org_lists — 84 of 100 lists used (84%). You can still create lists; at 100 the action is refused.

Per-user list limit reached

Scope user_lists — 20 of 20 lists you own. Transfer ownership of a list, archive one, or ask an org admin to raise the ceiling.

Usage against every ceiling

Per-list ceilings report current: null at org level — usage depends on which list you ask about, so they are shown as a limit, not a bar.

org_lists · per organization
84 / 100
user_lists · per user
20 / 20
list_items · per list
limit 500
current: null — measured per list, shown on that list's page.
list_locales · per list
limit 11
current: null — measured per list, shown in the workbench.

The quota wall — disabled CTA with a tooltip

Blocked actions are disabled and explained, never hidden. A hidden button teaches the user nothing; a button that fails on click teaches them the product is broken.

You've reached 20 of 20 lists. Transfer or archive a list you own, or ask an org admin to raise the user_lists ceiling.

States

Quota unavailable — failing open on the warning, not the action

If GET /v1/selection-lists/quota fails, the banner and meters are hidden and + New list stays enabled. The server is the authority: it will still refuse with 403 QUOTA_EXCEEDED, which is surfaced on the form. Disabling the button on a failed advisory call would lock out users who are nowhere near a limit.

Test hooks: [data-frame='06-quota'] · [data-panel='quota'] · [data-banner='quota-near'] · [data-banner='quota-at'] · [data-quota-scope='org_lists'] · [data-quota-scope='user_lists'] · [data-quota-scope='list_items'] · [data-quota-scope='list_locales'] · [data-quota-state='at-limit'] · [data-tooltip='quota'] · [data-action='new-list'][disabled] · [data-state='loading'] · [data-state='error']
Contract: GET /v1/selection-lists/quota → four SelectionListQuotaEntry. Per-list scopes report current: null.
Tokens only — no raw hex, spacing or type outside tokens.css / frame.css.

Review · selection-lists approve or reject each flow ↓
list-managementapproved · izzywdev
translation-workbenchapproved · izzywdev
access-controlapproved · izzywdev
pickerapproved · izzywdev