Provisioned throughput decreases are limited within a given day

TL;DR — DynamoDB limits how often you can decrease a table's (or GSI's) provisioned read/write capacity in a single UTC day. You've used the allowance, so UpdateTable is rejected. Wait for the hourly refill, batch your decrease into fewer larger steps, or switch the table to on-demand and stop managing decreases entirely.

What it means

LimitExceededException: Subscriber limit exceeded: Provisioned throughput
decreases are limited within a given UTC day

Each table starts a UTC day with a small budget of capacity decreases (increases are effectively unlimited). You begin the day with 4 decreases available, and earn 1 more each hour up to 4 in reserve — enough for up to 27 decreases across a full day. Exhaust it and further UpdateTable decrease calls fail until the budget refills. It's a quota, so blindly retrying won't help within the same window.

Why it happens

  • Auto-scaling flapping — a spiky workload makes DynamoDB auto-scaling step capacity down repeatedly, burning the decrease budget.
  • A script that lowers capacity too often — many small decreases instead of one larger one.
  • Manual tuning during load tests — repeatedly dialing capacity down as traffic ebbs.
  • Per-index budgets — each GSI has its own decrease allowance; a table with several indexes can hit it on one of them.

How to fix it

  1. Wait for the refill. One decrease becomes available each hour (up to 4 banked); the whole budget resets at 00:00 UTC.
  2. Make fewer, bigger decreases. Drop from 1000 → 200 in one step instead of five 160-unit steps.
  3. Tune auto-scaling — raise the target utilization and add a scale-in cooldown so it stops decreasing so aggressively.
  4. Switch to on-demand if the workload is bursty or unpredictable:
    aws dynamodb update-table --table-name <Table> \
      --billing-mode PAY_PER_REQUEST
    On-demand removes manual capacity management (and its decrease quota) altogether.

Console 없이 DynamoDB 작업하기

DynoTable은 DynamoDB를 위한 빠른 데스크톱 클라이언트입니다 — 테이블을 탐색하고, SQL 스타일 쿼리를 실행하고, 항목을 로컬에서 편집하세요.