---
title: "Report Update Failure"
method: POST
path: "/v1/updates/failures"
tags: ["updates"]
---

# Report Update Failure

`POST /v1/updates/failures`

## Request

- Base URL: `https://app.tokumalabs.com/api`
- URL: `https://app.tokumalabs.com/api/v1/updates/failures`
- Auth: none declared

Record an auto-update failure from the desktop app.

Unauthenticated by design: the client path reports failures from startup,
background-hourly, and manual-check flows, which all run before login
and while logged out. Identity is the ``device_id`` in the payload.

## Request body

- UpdateFailureReport: Fire-and-forget report from the desktop app when ``download_and_install`` fails. Unauthenticated — identity is carried as ``device_id`` because the update check runs before login and while logged out.
  - `device_id` string, required
  - `from_version` string, required
  - `to_version` string, required
  - `target` string, required
  - `error` string, required
  - `attempts` integer, required
  - `occurred_at` string, date-time, required
  - `would_quarantine` boolean

## Response `202`

Successful Response

- unknown

## Other responses

- `400`: Validation error or domain rule violation.
- `401`: Missing, expired, or invalid authentication.
- `403`: Authenticated but not permitted.
- `404`: Resource not found.
- `409`: Resource state conflict (duplicate, illegal transition).
- `422`: Request body failed schema validation.
- `500`: Server-side failure.

---

[API](https://skmtc.dev/tokumalabs/apis/tokuma-user-api.md) - [All operations](https://skmtc.dev/tokumalabs/apis/tokuma-user-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tokumalabs/apis/tokuma-user-api/revisions/1f8201af459b?raw)
