> ## Documentation Index
> Fetch the complete documentation index at: https://developer.secfix.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors

> RFC 7807 problem+json error envelope and stable error codes.

Every error response is an [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807)
`application/problem+json` envelope. Branch your error handling on the stable `code` string, not the
human-readable `detail`.

## Envelope

```json theme={null}
{
  "type": "https://api.secfix.com/problems/not_found",
  "title": "Not Found",
  "status": 404,
  "detail": "No asset found for the given id.",
  "instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
  "code": "not_found",
  "requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2"
}
```

Always include the `requestId` when contacting support — it correlates your request with our logs.

## Common codes

| HTTP | `code`                  | Meaning                                                                                           |
| ---- | ----------------------- | ------------------------------------------------------------------------------------------------- |
| 400  | `validation_failed`     | The request body or parameters are invalid (e.g. an unknown tag key, or `tags` in a bulk update). |
| 401  | `unauthorized`          | Missing or invalid access token.                                                                  |
| 401  | `token_superseded`      | The token was replaced by a newer one (single active token). Fetch a fresh token.                 |
| 403  | `scope_required`        | The token lacks a scope required by the endpoint.                                                 |
| 403  | `resource_not_writable` | The resource cannot be modified (e.g. an employee row).                                           |
| 404  | `not_found`             | The resource does not exist, or is not in your workspace.                                         |
| 409  | `idempotency_conflict`  | An `Idempotency-Key` was reused with a different request body.                                    |
| 429  | `rate_limited`          | You exceeded your rate limit. See [Rate limits](/rate-limits).                                    |
