BackupInUseException
TL;DR — A conflicting backup control-plane operation is still in flight on this table: the backup is being created, deleted, or restored right now. These operations serialize — wait for the in-flight one to finish (check BackupStatus via DescribeBackup), then retry yours.
What it means
BackupInUseException: There is another ongoing conflicting backup control
plane operation on the table. The backup is either being created, deleted
or restored to a table.On-demand backup operations (CreateBackup, DeleteBackup, RestoreTableFromBackup) are control-plane calls, and DynamoDB rejects ones that would conflict with an operation already running against the same backup or table. It's a transient state error, not a permissions or data problem.
Why it happens
- Deleting a backup that's still being created — the
CreateBackuphasn't reachedAVAILABLEyet. - Deleting a backup while a restore from it is running — the restore holds the backup until the new table finishes creating.
- Overlapping automation — a cleanup script and a backup scheduler racing each other, or a retry loop double-firing
CreateBackupon the same table. - Bursting past the rate limit —
DeleteBackupaccepts at most 10 calls per second; sweeping many backups in a tight loop trips conflicts and throttling together.
How to fix it
Check what's in flight, then wait:
aws dynamodb describe-backup --backup-arn arn:aws:dynamodb:...:table/orders/backup/01234... # BackupStatus: CREATING | AVAILABLE | DELETEDRetry your operation once the status settles (
AVAILABLEfor a completed create; a restoring table reachesACTIVEviadescribe-table).Retry with backoff instead of failing hard — backup operations take seconds to minutes; a simple wait-and-retry loop around the call absorbs the serialization.
Serialize your automation — one owner per table for backup lifecycle operations; queue deletes behind creates rather than running both on a cron that can overlap.
Pace bulk deletes — stay under 10
DeleteBackupcalls/second and handle this exception as the signal to slow down.
Backups protect the data you can least afford to lose — browse what's actually in a table before pruning its backups with the DynoTable desktop app, and estimate restore read traffic with the DynamoDB pricing calculator.
Related errors
- BackupNotFoundException — the ARN doesn't resolve to a backup at all.
- Table already exists — restoring to a name that's taken.
- LimitExceededException — too many concurrent control-plane operations.
- Learn: Backups & point-in-time recovery
References
- DeleteBackup — Amazon DynamoDB API Reference
- RestoreTableFromBackup — Amazon DynamoDB API Reference
- DescribeBackup — Amazon DynamoDB API Reference
- Restoring a DynamoDB table from a backup — Amazon DynamoDB Developer Guide
Last verified 2026-07-13 against the official AWS documentation linked above.