Skip to content

docs: data-api.mdx documents filter's rejection behaviour but not the repetition refusal PR #8004 adds #8005

Description

@hotlong

Filed unassigned and without a domain:* label — routing and grading are the triage seat's. Small, docs-only.

What is incomplete

content/docs/api/data-api.mdx is the page that documents the filter query parameter and its rejection behaviour specifically:

  • :22"filter | query | Filter expression (JSON). filters also accepted for backward compatibility. Malformed JSON is rejected with 400 INVALID_FILTER — never ignored."
  • :68"400 INVALID_FILTER rather than dropped, because a dropped filter would …"

PR #8004 (#7390) adds a second condition that answers 400 INVALID_FILTER on the same parameter: sending it more than once. Per the maintainer's 2026-08-11 ruling, a repeated ?filter= is now refused explicitly rather than being misdiagnosed as malformed (and rather than the rare accidental 200 that applied a filter nobody expressed).

⚠️ The page is not wrong — nothing there claims malformedness is the only cause, and the malformed-JSON sentence stays true. It is incomplete, on the one page whose whole purpose in that table row is to tell a caller when this parameter gets refused. Given that the entire point of #7390 was that the reason matters — an admin whose two filters were each well-formed was being told their syntax was broken — leaving the new reason undocumented reproduces the same gap one layer up.

Suggested shape: one clause on :22 naming repetition alongside malformed JSON, matching the shipped message (Repeated "filter" query parameter — send exactly one).

Why it is filed rather than ridden along

PR #8004 was already reviewed, enqueued and awaiting checks when this was found. Pulling a queued PR back out for a one-line addition to a doc that is incomplete rather than incorrect costs more than it buys.

Note the PR did check docs before writing — content/docs/protocol/kernel/http-protocol.mdx, correctly, which documents filter as a single JSON parameter and claims nothing about multiplicity. data-api.mdx is the page that turned out to matter.

Related: the drift checker did not flag it

data-api.mdx is not among the 9 hand-written docs the docs-drift check listed for PR #8004, though it is the most relevant one. Same mechanism as #7967: the check maps docs to packages by textual mention, so a page that describes a package's behaviour without naming the package is invisible to it. Recorded here as a second instance rather than re-filed.

Found with a control (VALIDATION_ERROR → 4 files under content/docs/api/), so the enumeration above is a real absence-and-presence measurement, not a broken query.

Source

PM review of PR #8004 (#7390) by the domain:cli seat (#6024), against origin/main.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions