This error occurs when you attempt to access or restore a DynamoDB backup using a BackupARN that does not exist, has been deleted, or is in a different AWS region. Verify the backup exists and the ARN is correct before attempting operations.
The BackupNotFoundException error indicates that DynamoDB cannot find the backup you're trying to access. This is a client fault error thrown by backup operations like DescribeBackup, DeleteBackup, or RestoreTableFromBackup when the provided backup ARN does not correspond to an existing backup in the specified AWS account and region. The backup may have been previously deleted, the ARN may be malformed or incorrect, or you may be querying in the wrong region.
Check that your backup ARN follows the correct format and contains accurate information:
arn:aws:dynamodb:region:account-id:table/table-name/backup/backup-idExample:
arn:aws:dynamodb:us-east-1:123456789012:table/MyTable/backup/01234567890123-abcdefghVerify each component:
- region: Must match where the backup was created (e.g., us-east-1, eu-west-1)
- account-id: Must be your AWS account ID
- table-name: Must exactly match your table name (case-sensitive)
- backup-id: Must be the correct backup identifier
Use the AWS CLI to list all backups for your table and verify it exists:
aws dynamodb list-backups --region us-east-1Or list backups for a specific table:
aws dynamodb list-backups --table-name MyTable --region us-east-1Look for your backup in the output and copy the exact BackupArn value. The backup status must be AVAILABLE to use it for restore operations.
If you have a backup ARN, verify its current status using describe-backup:
aws dynamodb describe-backup \
--backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/MyTable/backup/01234567890123-abcdefgh \
--region us-east-1The response includes BackupStatus which should be AVAILABLE. If the backup is not found, the command will fail with BackupNotFoundException. If the status is CREATING or DELETING, wait for the operation to complete.
DynamoDB backups are region-specific. Ensure your CLI/SDK is configured for the correct region:
# Set region explicitly in the command
aws dynamodb list-backups --region us-east-1
# Or check your default region
aws configure get region
# Change default region if needed
aws configure set region us-east-1If you created the backup in one region (e.g., us-east-1) but are trying to restore it in another (e.g., eu-west-1), you must first specify the correct region or copy the backup to the target region.
Once you have verified the backup exists and obtained the correct ARN, retry your operation:
const { DynamoDBClient, RestoreTableFromBackupCommand } = require('@aws-sdk/client-dynamodb');
const client = new DynamoDBClient({ region: 'us-east-1' });
const command = new RestoreTableFromBackupCommand({
BackupArn: 'arn:aws:dynamodb:us-east-1:123456789012:table/MyTable/backup/01234567890123-abcdefgh',
TargetTableName: 'MyTable-Restored'
});
const response = await client.send(command);
console.log('Restore initiated:', response.TableDescription.TableArn);Or using Python/boto3:
import boto3
dynamodb = boto3.client('dynamodb', region_name='us-east-1')
response = dynamodb.restore_table_from_backup(
TargetTableName='MyTable-Restored',
BackupArn='arn:aws:dynamodb:us-east-1:123456789012:table/MyTable/backup/01234567890123-abcdefgh'
)
print('Restore initiated:', response['TableDescription']['TableArn'])If you created backups using AWS Backup service (rather than DynamoDB's on-demand backup feature), you cannot access them directly via the DynamoDB API using standard backup ARNs. AWS Backup backups use recovery points instead, which must be managed through the AWS Backup console or API. To check if a backup is from AWS Backup, look at the BackupType field in list-backups output—it will show AWS_BACKUP instead of USER. For cross-region restore scenarios, ensure you've copied the backup to the target region first using the AWS Backup service. Additionally, ensure your IAM user or role has the dynamodb:DescribeBackup, dynamodb:RestoreTableFromBackup, and related permissions. Rate limits for DynamoDB backup operations are 50 requests per second for CreateBackup and DeleteBackup, and 10 requests per second for RestoreTableFromBackup per account.
ImportConflictException: There was a conflict when attempting to import to the table
How to fix 'ImportConflictException: There was a conflict when attempting to import to the table' in DynamoDB
ResourceNotFoundException: Requested resource not found
How to fix "ResourceNotFoundException: Requested resource not found" in DynamoDB
TrimmedDataAccessException: The requested data has been trimmed
How to fix "TrimmedDataAccessException: The requested data has been trimmed" in DynamoDB Streams
GlobalTableNotFoundException: Global Table not found
How to fix "GlobalTableNotFoundException: Global Table not found" in DynamoDB
InvalidExportTimeException: The specified ExportTime is outside of the point in time recovery window
How to fix "InvalidExportTimeException: The specified ExportTime is outside of the point in time recovery window" in DynamoDB