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

# Invalid canonical_uid

> 400 — The `canonical_uid` path segment is malformed.

The `canonical_uid` path segment is malformed.

```json 400 application/problem+json theme={null}
{
  "type": "https://docs.permitcore.io/errors/invalid-canonical-uid",
  "title": "Invalid canonical_uid",
  "status": 400,
  "detail": "…",
  "instance": "/v1/permits/by-canonical-uid/abc-xyz",
  "request_id": "req_1f07fb45782b445e9f6312ba23921234"
}
```

Every PermitCore error is [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)
`application/problem+json`. **Branch on `type` (a stable URI)**, not on `title`
or `detail` (human-readable, may change).

## When it occurs

The path segment could be read but does not conform to the `{jurisdiction_id}:{source_permit_id}` shape (e.g. missing the `:` separator, or a non-numeric `jurisdiction_id`). Real values contain `:`, `|`, spaces, and `/`, so they MUST be `encodeURIComponent`-escaped.

## How to fix

URL-encode the full `canonical_uid` before placing it in the path and confirm it has the `{jurisdiction_id}:{source_permit_id}` form. See [Get a permit by canonical\_uid](/api-reference/permits-by-canonical-uid).

**Not retryable** — fix the request before resubmitting; retrying unchanged returns the same error.

See the full [error catalog](/errors) for the response shape and retry matrix.
Every response carries an `x-request-id` header — include it in any support request.
