DynamoDB BackupNotFoundException
TL;DR — DynamoDB has no backup matching the BackupArn you supplied. Almost always a wrong or malformed ARN, a backup that was deleted or expired, or a client pointed at the wrong region/account. List the backups for the table and copy the exact ARN.
What it means
BackupNotFoundException: Backup not found for the given BackupARN.Restore and describe calls (RestoreTableFromBackup, DescribeBackup, DeleteBackup) address a backup by its ARN. This HTTP 400 means no backup exists at that ARN in the region + account your credentials resolve to. It's client-side and not retryable until the ARN is correct.
Why it happens
- Wrong or malformed ARN — a typo, a truncated ARN, or one hand-built rather than copied from
list-backups. - Backup was deleted or expired — someone removed the on-demand backup, an AWS Backup lifecycle rule aged it out, or it was a
SYSTEMbackup (created automatically when a table with PITR enabled is deleted), which expires 35 days after creation. - Wrong region —
list-backups/describe-backupare regional; the backup lives in the region where it was created (the region embedded in its ARN), so a client pointed elsewhere can't see it. - Wrong account — the credentials resolve to a different AWS account than the one that owns the backup.
- AWS Backup-managed recovery point — backups scheduled through AWS Backup are stored as recovery points in an AWS Backup vault, where lifecycle rules can transition or delete them; check the AWS Backup console if a backup isn't where you expect.
How to fix it
- List the backups for the table and grab the real ARN:
aws dynamodb list-backups --table-name <Table> --region <r> - Verify it exists and is available:
aws dynamodb describe-backup --backup-arn <arn> --region <r>BackupStatusshould beAVAILABLE— a backup that's mid-create/delete/restore rejects conflicting calls with BackupInUseException instead. - Pin the region to the one in the backup's ARN (where the backup was created).
- Confirm the account with
aws sts get-caller-identity. - Backup taken by an AWS Backup plan? Look it up in the AWS Backup console (its vault's recovery points) — lifecycle rules there can transition or delete backups on a schedule.
Connect from DynoTable
DynoTable is a table workbench, not a backup console — use it to confirm the live table exists in the region you intend to restore into before you call RestoreTableFromBackup. Open the target region profile (⌘P), ⌘K → open the table by name, and verify the account with the credential status on the profile chip.
If restore fails with BackupNotFoundException, the ARN is wrong or expired; fix that in the AWS Backup / DynamoDB backup APIs, then come back to DynoTable to inspect the restored table schema and items. The item size calculator helps sanity-check whether a restored item shape still fits your capacity plan.
Sources
- DescribeBackup — Amazon DynamoDB API Reference (verified 2026-07-13)
- Restoring a DynamoDB table from a backup (verified 2026-07-13)
Related errors
- BackupInUseException — the backup exists but a conflicting backup operation is still running.
- ResourceNotFoundException — the table itself can't be found in the region/account.
- Table already exists — the restore's target table name is taken.
- Learn: Backups & point-in-time recovery
References
- DescribeBackup — Amazon DynamoDB API Reference
- RestoreTableFromBackup — Amazon DynamoDB API Reference
- DeleteBackup — Amazon DynamoDB API Reference
- Restoring a DynamoDB table from a backup — Amazon DynamoDB Developer Guide
- Using AWS Backup with DynamoDB — Amazon DynamoDB Developer Guide
- Enable point-in-time recovery in DynamoDB — Amazon DynamoDB Developer Guide
Last verified 2026-07-13 against the official AWS documentation linked above.