DynamoDB global table version mismatch

TL;DR — DynamoDB has two global-table versions: 2017.11.29 (Legacy) and 2019.11.21 (Current). Creating a global table, adding a replica, or upgrading fails when the source table or the replicas have inconsistent settings across regions — mixed billing modes, non-uniform auto-scaling, differing TTL/GSI config — or when tooling is too old to speak the Current API. Align every replica's configuration, then retry.

What it means

ValidationException: Cannot create a global table from a table with ...
ValidationException: ... replicas must have the same ... across all regions

The Current version (2019.11.21) manages replication at the table level and requires all replicas to share the same schema, indexes, TTL, and capacity configuration. If you try to create/upgrade a global table whose regions disagree — or you mix the two versions — DynamoDB rejects it because it can't reconcile the differences into one globally consistent table.

Why it happens

  • Mixed billing modes — one replica on provisioned capacity, another on on-demand.
  • Non-uniform auto-scaling — different min/max WCU targets per region.
  • Inconsistent TTL or GSI configuration across the replicas.
  • Legacy (2017.11.29) table being treated as Current, or an attempt to mix the two versions.
  • Outdated AWS CLI/SDK that doesn't support the 2019.11.21 API model.
  • Pre-existing data or indexes in a region you're adding as a replica (a new replica must start empty/compatible).

How to fix it

  1. Standardize settings across all regions — same billing mode, same GSIs, same TTL, and uniform auto-scaling min/max targets.
  2. Check current state with DescribeGlobalTableSettings (or DescribeTable per region) and correct drift with UpdateGlobalTableSettings/UpdateTable.
  3. Upgrade Legacy → Current deliberately via the console/API rather than mixing versions.
  4. Update your AWS CLI/SDK to a version that supports 2019.11.21 (AWS CLI v2+).
  5. Add replicas to a compatible base table — ensure the target region has no conflicting table/indexes before adding it.

Managing a multi-region table and want to compare config without hopping consoles? The DynoTable desktop app connects per region so you can eyeball each replica's schema and indexes in one place.

Mit DynamoDB ohne die Console arbeiten

DynoTable ist ein schneller Desktop-Client für DynamoDB — durchsuche Tabellen, führe SQL-artige Queries aus und bearbeite Items lokal.