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 BackupArnRestore and describe calls (RestoreTableFromBackup, DescribeBackup, DeleteBackup) address a backup by its ARN. This HTTP 400 means no ACTIVE 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 — an on-demand backup someone removed, or one aged out by a lifecycle policy.
- Wrong region — the backup lives in the region where the source table lived; a client in another region can't see it.
- Wrong account — the credentials resolve to a different AWS account than the one that owns the backup.
- Backup still
CREATING— a just-started backup isn't restorable until it'sAVAILABLE. - AWS Backup vs native — recovery points managed by AWS Backup are restored through the AWS Backup APIs, not
RestoreTableFromBackupdirectly.
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> - Pin the region to where the source table (and its backup) lived.
- Confirm the account with
aws sts get-caller-identity. - Restoring an AWS Backup recovery point? Use the AWS Backup console/APIs, not the native DynamoDB restore call.
Related errors
- ResourceNotFoundException — the table itself can't be found in the region/account.
- ResourceInUseException — restore target name already exists.
- Learn: Backups & point-in-time recovery