CHW-4948 CLIExchangeCodeInvalid

missing or invalid exchange code

Default message: missing or invalid exchange code
HTTP status: 400 (client)

Problem. POST /api/auth/cli/exchange was rejected before any lookup happened. Cause. The request omitted the code or nonce field, or one of them is malformed. In the normal browser-login flow the CLI supplies both automatically, so this almost always means a hand-rolled or truncated request. Fix. Re-run chainsaw auth login and let the CLI drive the exchange. HTTP 400.