From e9868a7e89cc1e7c84e224ff01e733c27016142b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 17:12:54 +0000 Subject: [PATCH] docs(deployment): validating-metadata.mdx names the driver refusal, not the swallowed empty list The filter-position passage said the driver's "no such column" is swallowed and the list comes back empty. driver-sql, and the local faces of TursoDriver/SqliteWasmDriver (both extend SqlDriver), have refused an unresolvable WHERE column with INVALID_FILTER / 400, naming the column, since #8790. The Turso remote face refuses the same way as of 3e8b492d28 (#20461), through the inherited aggregateBackendFault seam. Rewrote the passage to the refusal and its remedy (schema sync, or naming a column the table has), and reworded the "why an error not a warning" rationale to match. Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv --- content/docs/deployment/validating-metadata.mdx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/content/docs/deployment/validating-metadata.mdx b/content/docs/deployment/validating-metadata.mdx index e742c65ce20..f0bc54f865e 100644 --- a/content/docs/deployment/validating-metadata.mdx +++ b/content/docs/deployment/validating-metadata.mdx @@ -378,11 +378,13 @@ A **filter position** is the exception that gates: // ↑ error, not a warning ``` -An unknown column in a predicate is not a skipped column — the predicate can -never match, the driver's "no such column" is swallowed, and the list comes back -empty and indistinguishable from *"there is no data"*. Each position of a filter -is judged on its own, so the field above is still checked even though `stage` -comes from React state. +An unknown column in a predicate is not a skipped column — the SQL drivers +refuse it with `INVALID_FILTER` / 400, naming the column, instead of running +the predicate. The remedy is to run schema sync so the declared field has its +column, or to name a column the table has. Catching it here, before the page +ships, means an author sees the mistake in the editor instead of a 400 in +production. Each position of a filter is judged on its own, so the field above +is still checked even though `stage` comes from React state. Skipped, to keep false positives at zero: the same set as §8 — non-static values, `{...spread}` usages, relationship paths, system fields, and objects