InvalidRestoreTimeException

TL;DR — El RestoreDateTime que pediste está fuera de la ventana de recuperación a un momento dado (point-in-time recovery) de esta tabla. PITR te permite restaurar a cualquier segundo dentro del periodo de recuperación (configurable entre 1 y 35 días, como mucho los últimos 35 días) — pero la ventana tampoco puede empezar antes de que PITR se activara. Lee la ventana real de la tabla con DescribeContinuousBackups y elige una hora dentro de ella, o pasa UseLatestRestorableTime para "lo más reciente posible".

Qué significa

InvalidRestoreTimeException: An invalid restore time was specified.
RestoreDateTime must be between EarliestRestorableDateTime and
LatestRestorableDateTime.

Cada tabla con PITR habilitado lleva una ventana móvil acotada por EarliestRestorableDateTime (hasta el periodo de recuperación hacia atrás, pero nunca antes de que PITR se activara) y LatestRestorableDateTime (normalmente unos 5 minutos antes de la hora actual). Una solicitud de restauración fuera de esos límites — demasiado antigua, o demasiado cercana a ahora — falla con esta excepción.

Por qué ocurre

  • La hora es más antigua que el periodo de recuperación — el incidente del que te estás recuperando ocurrió antes de la ventana (35 días como máximo, menos si se configura un periodo más corto).
  • PITR se habilitó recientemente — la ventana empieza en el momento de habilitación; no puedes restaurar a antes de ese momento ni siquiera dentro de los 35 días.
  • La hora es demasiado recienteLatestRestorableDateTime va por detrás de la hora real ~5 minutos; "restaurar a hace 30 segundos" aún no está en la ventana.
  • Deslices de zona horaria/formato — una marca de tiempo en hora local enviada donde se esperaban segundos epoch en UTC cae fuera de la ventana sin que te des cuenta.

Cómo solucionarlo

  1. Lee primero la ventana real:

    aws dynamodb describe-continuous-backups --table-name orders
    # ...PointInTimeRecoveryDescription:
    #    EarliestRestorableDateTime, LatestRestorableDateTime
  2. Elige un RestoreDateTime dentro de ella (segundos epoch, UTC), o toma el estado más reciente disponible sin nombrar una hora:

    aws dynamodb restore-table-to-point-in-time \
      --source-table-name orders --target-table-name orders-recovered \
      --use-latest-restorable-time
  3. ¿Necesitas datos más antiguos que la ventana? PITR no puede alcanzarlos — recurre a una copia de seguridad bajo demanda o a una exportación de tabla hecha en esa época, si existe.

  4. Recuerda lo que una restauración no lleva — la nueva tabla obtiene los datos, los índices, la capacidad y la configuración de cifrado, pero debes volver a crear las políticas de auto scaling, las políticas de IAM, las alarmas de CloudWatch, las etiquetas, la configuración de streams, TTL y el propio PITR.

Una vez que aterrice la restauración, verifica los datos recuperados antes de conmutar el tráfico — la aplicación de escritorio DynoTable convierte comparar la tabla recuperada con lo esperado en una tarea de exploración, y la calculadora de precios de DynamoDB dimensiona el coste de capacidad de la nueva tabla.

Errores relacionados

Referencias

Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.

Trabaja con DynamoDB sin la Consola

DynoTable es un cliente de escritorio rápido para DynamoDB: explora tablas, ejecuta consultas estilo SQL y edita Items localmente.