---
title: "List Client Errors"
method: GET
path: "/admin/client-errors"
tags: ["admin-client-errors"]
---

# List Client Errors

`GET /admin/client-errors`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/admin/client-errors`
- Auth: none declared

List raw SPA error reports, newest first, across every tenant (admin).

Filter by triage ``status``, by ``since``, by ``fingerprint`` to pull one group's rows,
or by ``company_id`` to answer "what is breaking for THIS customer" (admin surface P9).
That last filter is what makes the list reachable from Company 360: the rows were
always stored per tenant and the endpoint simply refused to filter on it, so a support
accountant on a call had to page the whole instance and read company ids by eye.

For triage prefer the ``/groups`` companion, which collapses the duplicates a single
bug produces; this flat view is for reading one group's individual reports.

## Query parameters

- `status` 'new' | 'acknowledged' | 'resolved' | 'ignored': Triage lifecycle of a ``client_error_log`` row. ``new`` on ingest; a fixing session claims via a conditional bulk update to ``acknowledged``, then flips ``resolved`` (fix merged) or ``ignored`` (noise). Recurrence after ``resolved`` shows up as fresh ``new`` rows for the same fingerprint — regression detection for free.
- `since` string, date-time, nullable
- `fingerprint` string, nullable
- `company_id` string, nullable
- `limit` integer
- `offset` integer

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- ClientErrorsResponse
  - `errors` ClientErrorOut[], required
    - `id` string, required
    - `status` 'new' | 'acknowledged' | 'resolved' | 'ignored', required: Triage lifecycle of a ``client_error_log`` row. ``new`` on ingest; a fixing session claims via a conditional bulk update to ``acknowledged``, then flips ``resolved`` (fix merged) or ``ignored`` (noise). Recurrence after ``resolved`` shows up as fresh ``new`` rows for the same fingerprint — regression detection for free.
    - `fingerprint` string, required
    - `kind` 'window_error' | 'unhandled_rejection' | 'react_boundary' | 'route_error' | 'api_error' | 'query_error' | 'server_signal', required: Where a ``client_error_log`` report originated in the SPA (doc/architecture.md §"Client error telemetry"). ``window_error`` — uncaught exception (``window`` error event); ``unhandled_rejection`` — unhandled promise rejection; ``react_boundary`` — caught by the app-level React ErrorBoundary; ``route_error`` — caught by a React Router ``errorElement``; ``api_error`` — API call failed (5xx or network); ``query_error`` — non-API exception surfaced through the TanStack Query cache; ``server_signal`` — **not** from the SPA: an operational signal the api itself raises, where the alternative is a log line on the deploy host with whatever retention docker's json-file driver happens to have. Signup throttle trips and allowlist refusals are the first: they are how an operator learns a public mail-sending endpoint is being abused, and that must not be a `grep`.
    - `message` string, required
    - `name` string, nullable
    - `stack` string, nullable
    - `component_stack` string, nullable
    - `source` string, nullable
    - `lineno` integer, nullable
    - `colno` integer, nullable
    - `route` string, nullable
    - `href` string, nullable
    - `app_version` string, nullable
    - `user_agent` string, nullable
    - `session_id` string, nullable
    - `user_id` string, nullable
    - `company_id` string, nullable
    - `context` object, nullable
    - `triage_note` string, nullable
    - `occurred_at` string, date-time, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zeno-works/apis/zeno-api.md) · [All operations](https://skmtc.dev/zeno-works/apis/zeno-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zeno-works/apis/zeno-api/revisions/1eb93dde146c?raw)
