# X_CONTRACT_DRIFT

## Means

client and server disagree about the contract

## Typical cause

three raises. **Build id**: the typed client holds types from one build and a server on another answered (`rpc({ buildId })` against the `x-ultimate-build` response header). **Path style**: a `POST` reached the path an action has under a `pathStyle` this server does not serve — 404, the cause names the action, both styles and the served path (`As of 2026-10`; it was a bare `X_ROUTE_NOT_FOUND`). **Contract test**: a generated contract assertion did not hold — the OpenAPI document has no entry for the action, or its policy denial could not be proven

## Fix

build id: reload the page. Path style: `rpc<Api['actions']>({ baseUrl, pathStyle: 'readable' })` with the style the cause names — a browser passes none, the page states it. Contract test: the thrown `fix:` names the edit; `x actions show <name> --json` prints the schema

[Actions](/error-codes#actions)
