Run
9 emulators 1251 tests
Results as of this run. The arrow shows each target's movement since the previous run it was tested in. The suite grew this run, so an upward arrow can be the new tests biting rather than a target getting worse.
Suite grew from 1056 to 1251 tests this run.
That's 195 new tests measured against every target. Movement below compares to the previous run, so a rise here is as likely to be the stricter suite as a real regression.
What changed in the suite this run
Suite on
Thirteen captures against eu-west-2 turned into coverage, and the suite grew from 1056 tests to 1251. All of it was ground truth nothing asserted, so an engine could discard a PartiQL index qualifier or store an item AWS would refuse and still score a clean pass.
- PartiQL index qualifier. What a qualified
SELECTreturns, when an unprojected attribute is rejected and when it is served from the base table, how the reach-back is charged, that a qualified write is rejected, and the exact wording of each rejection. - PartiQL comparison on non-scalar types. Equality and inequality on every
set, map and list, each checked against the same predicate written as a
ConditionExpression. BatchExecuteStatementmember fields. Per-memberConsistentRead, the primary-key requirement, and which failures echoTableName.- The 400KB gate, to the byte. 409,600 accepted and 409,601 refused across
seven write surfaces.
UpdateItemis the outlier: it charges what the statement writes plus a fixed cost per clause, so the key and every untouched attribute stay out of the figure. - A number's byte cost. Twenty-three literals, each measured by an accept and a refusal either side of the gate. The rule the developer guide documents is wrong in two ways, and both have a case.
- Reads are sized before the filter.
Scan,Queryand PartiQL all charge before theWHEREclause and the projection, so discarding rows saves nothing. - Vector write capacity.
VectorWriteRequestBytespinned term by term, charged on the change to the index's own stored view like a GSI.VectorSearchRequestBytesstays shape-only: five identical searches against an unchanged index reported 14214, 13903, 14214, 14214 and 14518. - Vector index creation has two phases. Resource allocation, where the table
sits in
UPDATING,Backfillingreads false and a cancel is refused, then backfilling, which takes one. The one-online-index limit binds the table rather than the call.
Two fixes came with it. A local run against real DynamoDB takes its own table
namespace, so it can no longer delete a CI run's tables. And a
TransactWriteItems control, plus the whole PartiQL validation-ordering file,
were feeding an unsupported fault into an assertion about wording and scoring a
declared gap as a disagreement; both now skip.
BatchWriteItem with an empty RequestItems map is now a recorded regional
split. eu-north-1 answers the validation framework's generic constraint message
where the other 32 answering regions answer the bespoke required-parameter
sentence. A capture on 2026-08-17 found every answering region on the bespoke
wording, which dates the crossing to that week rather than guessing at it.
The over-25-requests assertion beside it spans both cohorts instead of becoming a second row. Neither wording is byte-stable: the table name carries a per-run suffix, the old cohort echoes all 26 requests back, and seven regions echo them as a JVM object identity rather than expanded fields. A row records one verbatim answer per region and there is nothing verbatim here to record, so the anchored pattern grew a second branch instead. It still refuses a wrong limit and a wrong table, and it matches every one of the 33 answering regions.
The capture harness can take that evidence without creating tables. --probes
selects named probes and --no-tables skips the fixtures, which is all these
three need: DynamoDB refuses each of them before it looks at a table, so the
answers do not depend on one existing, and read-only credentials are enough. The
2026-08-17 capture was taken with a scoped script that was never committed; this
is the committed way to reproduce it.
-
Grade baselineground truth
no divergence in all 33 regions · covers 100.0% of the suite
Tier breakdown
Tier 1 · Core 0.0% diverges100.0% coveredTier 2 · Complete 0.0% diverges100.0% coveredTier 3 · Strict 0.0% diverges100.0% covered -
Runs via: npx, Docker, Homebrew, binary, npm, cargo, embedded, GitHub Action, source
Disclosure: maintained by this board's author
Grade Adiverged 0.2 percentage points morelow divergence (0.2%) in 22 regions · up to 0.5% in the other 11 · covers 98.9% of the suite
Tier breakdown
Tier 1 · Core 0.0% diverges100.0% coveredTier 2 · Complete 0.0% diverges95.9% covered 14 unsupportedTier 3 · Strict 0.5% diverges100.0% coveredAlso built for WebAssembly / OPFS
-
Grade A
low divergence (0.2%) in 16 regions · up to 0.5% in the other 17 · covers 88.8%
-
-
Grade Bdiverged 1.7 percentage points more, grade A to B
low divergence (1.8%) in 16 regions · up to 2.2% in the other 17 · covers 78.7% of the suite · coverage lowers this row to B
Tier breakdown
Tier 1 · Core 0.0% diverges100.0% coveredTier 2 · Complete 0.0% diverges33.6% covered 229 unsupportedTier 3 · Strict 5.6% diverges90.7% covered 38 unsupportedAlso built for SQLite
-
Grade B
low divergence (2.1%) in 16 regions · up to 2.4% in the other 17 · covers 82.8% · coverage lowers this row to B
-
-
Grade Bdiverged 4.6 percentage points more
moderate divergence (8.1%) in 1 regions · up to 8.3% in the other 32 · covers 95.3% of the suite
Tier breakdown
Tier 1 · Core 2.8% diverges100.0% coveredTier 2 · Complete 12.5% diverges87.5% covered 43 unsupportedTier 3 · Strict 10.7% diverges96.1% covered 16 unsupported -
Grade Cdiverged 1.3 percentage points less
moderate divergence (11.5%) in 11 regions · up to 11.7% in the other 22 · covers 69.1% of the suite · coverage lowers this row to C
Tier breakdown
Tier 1 · Core 10.7% diverges100.0% coveredTier 2 · Complete 8.1% diverges11.6% covered 305 unsupportedTier 3 · Strict 15.4% diverges80.2% covered 81 unsupported -
Grade Cdiverged 0.6 percentage points more
high divergence (15.7%) in 16 regions · up to 15.7% in the other 17 · covers 94.2% of the suite
Tier breakdown
Tier 1 · Core 7.5% diverges100.0% coveredTier 2 · Complete 15.4% diverges83.5% covered 57 unsupportedTier 3 · Strict 25.9% diverges96.1% covered 16 unsupported -
Grade Cdiverged 5.7 percentage points more, grade B to C
high divergence (17.6%) in 6 regions · up to 17.7% in the other 27 · covers 95.8% of the suite
Tier breakdown
Tier 1 · Core 5.6% diverges100.0% coveredTier 2 · Complete 25.5% diverges89.6% covered 36 unsupportedTier 3 · Strict 25.4% diverges96.1% covered 16 unsupported -
4e451c39c7bb 61 unsupported ; covers 95.1% of the suite
Runs via: Docker, Homebrew, install script, Scoop, binary, JAR
Grade Ddiverged 6.0 percentage points more, grade C to Dvery high divergence (26.9%) in 6 regions · up to 27.1% in the other 27 · covers 95.1% of the suite
Tier breakdown
Tier 1 · Core 10.1% diverges100.0% coveredTier 2 · Complete 44.6% diverges87.0% covered 45 unsupportedTier 3 · Strict 32.4% diverges96.1% covered 16 unsupported