Skip to content

ListBackups: an ExclusiveStartBackupArn with U+0000 answers "BackupArn is not valid", where DynamoDB names the account, the table or the backup id #907

Open

Description

@LeeroyHannigan

What ExtendDB does

list_backups_cursor in crates/engine/src/backup.rs checks the shape with check_backup_arn before it compares the account. A shape that check refuses gets Invalid Request: BackupArn is not valid.

Measured at 9234b54 of #830 on 2026-11-07, SQLite and PostgreSQL. The account is the caller's unless the row names another:

ExclusiveStartBackupArn ExtendDB
account segment 1234<U+0000> ValidationException: Invalid Request: BackupArn is not valid
U+0000 in the table segment Invalid Request: BackupArn is not valid
U+0000 in the backup id, backup/0170<U+0000> Invalid Request: BackupArn is not valid

What DynamoDB does

Measured in us-east-1 on 2026-11-06, with SDK parameter validation off:

ExclusiveStartBackupArn DynamoDB
account segment 1234<U+0000> ValidationException: Invalid Request: The supplied ExclusiveStartBackupArn does not match the account
U+0000 in the table segment Invalid Backup ARN
U+0000 in the backup id Invalid Request: The supplied ExclusiveStartBackupArn is not a valid backup arn

An account segment of 13 digits gets the account sentence from both.

Suggested fix

Compare the account segment before the rest of the shape, and give the table segment and the backup id the two sentences above. Which other characters get each sentence was not measured.

Related: #617, #830.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions