BackupInUseException
TL;DR — Sigue en curso una operación de control-plane de backup en conflicto sobre esta tabla: el backup se está creando, eliminando o restaurando en este momento. Estas operaciones se serializan — espera a que termine la que está en curso (comprueba BackupStatus con DescribeBackup) y luego reintenta la tuya.
Qué significa
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.Las operaciones de backup bajo demanda (CreateBackup, DeleteBackup, RestoreTableFromBackup) son llamadas de control-plane, y DynamoDB rechaza las que entrarían en conflicto con una operación que ya se está ejecutando contra el mismo backup o tabla. Es un error de estado transitorio, no un problema de permisos ni de datos.
Por qué ocurre
- Eliminar un backup que todavía se está creando — el
CreateBackupaún no ha llegado aAVAILABLE. - Eliminar un backup mientras se está restaurando desde él — la restauración retiene el backup hasta que termine de crearse la nueva tabla.
- Automatización solapada — un script de limpieza y un programador de backups compitiendo entre sí, o un bucle de reintentos que dispara
CreateBackupdos veces sobre la misma tabla. - Superar el límite de tasa a ráfagas —
DeleteBackupacepta como máximo 10 llamadas por segundo; barrer muchos backups en un bucle apretado provoca conflictos y throttling a la vez.
Cómo solucionarlo
Comprueba qué está en curso y luego espera:
aws dynamodb describe-backup --backup-arn arn:aws:dynamodb:...:table/orders/backup/01234... # BackupStatus: CREATING | AVAILABLE | DELETEDReintenta tu operación cuando el estado se estabilice (
AVAILABLEpara una creación completada; una tabla en restauración llega aACTIVEvíadescribe-table).Reintenta con backoff en lugar de fallar de golpe — las operaciones de backup tardan de segundos a minutos; un simple bucle de esperar-y-reintentar alrededor de la llamada absorbe la serialización.
Serializa tu automatización — un único responsable por tabla para las operaciones de ciclo de vida de backup; encola los deletes detrás de los creates en vez de ejecutar ambos en un cron que pueda solaparse.
Regula los deletes masivos — mantente por debajo de 10 llamadas
DeleteBackup/segundo y trata esta excepción como la señal para ir más despacio.
Los backups protegen los datos que menos te puedes permitir perder — explora lo que hay realmente en una tabla antes de podar sus backups con la aplicación de escritorio DynoTable, y estima el tráfico de lectura de la restauración con la calculadora de precios de DynamoDB.
Errores relacionados
- BackupNotFoundException — el ARN no resuelve a ningún backup.
- Table already exists — restaurar a un nombre que ya está ocupado.
- LimitExceededException — demasiadas operaciones de control-plane concurrentes.
- Aprende: Backups y recuperación a un punto en el tiempo
Referencias
- 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
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.