From d87f5a77ff5444a04b8b64b1fdc7bed91dbf1260 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 18 Oct 2026 14:55:53 +0000 Subject: [PATCH] docs(error-catalog): INVALID_FIELD names the refusal of a search over an empty resolved search set The engine refuses a non-blank `search` with `400 INVALID_FIELD` (`param: 'search'`) when the object's resolved search set is empty, instead of answering every row. The catalog's Cause text listed every other read axis that answers this code but not this one. One sentence is added after the `internal: true` sentence, with the two remedies the refusal message itself prescribes. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude --- content/docs/api/error-catalog.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/docs/api/error-catalog.mdx b/content/docs/api/error-catalog.mdx index dc253b59c94..e2c3da3c04e 100644 --- a/content/docs/api/error-catalog.mdx +++ b/content/docs/api/error-catalog.mdx @@ -159,6 +159,10 @@ aggregation's own `filter`), a sort, a `groupBy`, an `aggregations[].field`, a `searchFields` entry, or an `expand` entry's own filter or sort at any depth. Such a field is never returned on a generic read, so it cannot be queried by either — the refusal names the object that declares it. Query by another field. +A non-blank `search` is refused (`param: 'search'`), not answered with every row, +when the object's resolved search set is empty: no `searchableFields` entry names a +stored field, and the default search scans none (`internal: true` fields never +count). Declare one that does, or mirror a composed title onto a stored text field. Off the request path the same code answers `backfillSummaryNulls`'s `recomputeUndefinedOnEmpty` (`os migrate summary-nulls --recompute-undefined-on-empty object.field`) when an entry is not a roll-up