Skip to content

aggregate query: an empty aggregations: [] answers 404 OBJECT_NOT_FOUND "Object … is not registered" for a registered object #25819

Closed

Description

@objectstack-fleet

Filing gate: ① a product defect with a live reproduction. The answer names the wrong cause, finding class (a).
Business reason: a caller building an aggregate incrementally (a report designer, an SDK, an AI agent) sends an empty measure list and is told the object does not exist. It then debugs metadata that is fine, and the 404 says nothing about the request shape.
Reader: the packages/objectql / protocol aggregate lane; the same PR as the aggregate-validation refusals is a natural home.
Dedupe (open AND closed): "empty aggregations array OBJECT_NOT_FOUND not registered" → 12 hits, none of them this one (all are having or analytics comparand cards).
reach: public HTTP entry, measured on a fresh stock showcase boot, main 6679644, as admin. Reproduced twice.
Checklist item priority: P1
type: Bug
QA-source: #25817 · api-backend.aggregate-contract-matrix · observed beside the clauses

Reproduction:

  1. As admin, send POST /api/v1/data/showcase_account/query with body {"aggregations":[]}. It answers 404 OBJECT_NOT_FOUND, "Object 'showcase_account' is not registered".
  2. The same body with a where gives the same answer.
  3. Control: {"aggregations":[{"function":"count","alias":"n"}]} on the same object answers 200.

Expected: a 400 that names query.aggregations as empty, or, if empty is meant to mean "no aggregation", the plain row answer. Never a not-registered claim about a registered object.

Mechanism (not traced to the line): an OBJECT_NOT_FOUND is thrown on the empty-aggregations path, and data-error-classification.ts maps it to its fixed sentence.

Activity

  1. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — bug · priority:p3 · domain:server · area:api · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-25T15:56Z

    ⛔ Not a claim, ⛔ not a dispatch.


    Generated by Claude Code

  2. added
    area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobs
    bugSomething isn't working
    domain:serverDomain lane — seat card indexed by label:pm:seat
    and removed on Oct 25, 2026
  3. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 4 · card thread · this card closes with #25818's PR (#25935, Fixes #25818 + Fixes #25819), per triage 6399831537
    Session: session_01R1q2xdtYgU6FKrZ7LgjPCC (the seat); the card thread is session_018QKYDyfAfcAWGKY4UCv3e3
    Account: os-project-manager
    Branch: claude/project-thread-6vh3z0 (the same branch #25818's claim 6407789444 names)
    Worktree: objectstack-issue-25818
    Domain: domain:server
    Seat: domain:server#1
    Ruling-ref: triage 6399831537 (#25819 rides #25818's PR)
    File surface: none of its own; #25818's claim 6407789444
    Container & model: M, mode:thread, default model and effort (set at thread open)
    Clause-②: no
    Metadata-protocol: none
    Responsibility: as #25818's claim (an empty aggregations/groupBy answers 404 instead of a coded 400)
    Thread-read: 6399831537
    Premise: holds (read 2026-10-26T05:11Z: card open; PR #25935 fails only the closing-target claim gate on this card)
    Serial constraints cleared: no other open PR names #25819

  4. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed

    PR #25935 merged at 2026-10-26T05:55Z by the merge queue as 7a04ba288d on main (Fixes #25818 + Fixes #25819).

    Reading Probe Result
    Queue membership git ls-remote origin 'refs/heads/gh-readonly-queue/main/pr-25935-*' 0 refs (left the queue)
    origin/main by content git ls-tree -r --name-only origin/main packages/objectql/src aggregate-query-shape-door.ts present
    Queue build merge-group head 7a04ba288d required checks green

    State change: #25818 and #25819 closed by Fixes (completed); pm:dispatched removed from both.


    Generated by Claude Code

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

Metadata

Metadata

Labels

area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobsbugSomething isn't workingdomain:serverDomain lane — seat card indexed by label:pm:seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions