Output and reference
Retries and timeouts
nace uses the Python SDK's default retry policy:
| Rule | Default |
|---|---|
| What it retries | A 408, a 429, a 5xx (unless the error says "retryable": false), a dropped connection or a timeout. |
| How often | Up to 2 times. |
| How long it waits | As Retry-After says, else backing off from 0.5 s up to 5 s. |
| Total retry budget | Disabled by default. Slow retryable failures can use both retries, so a failed command can take several minutes, including waits. |
The CLI has no flag to change the retry policy. To configure a total retry budget, call the Python SDK with your own RetryPolicy, for example with timeout=30.0. A budget decides whether another attempt starts; it does not interrupt one already running.
Never retried. These commands aren't idempotent, so a retry after a call that went through would do it twice or fail:
nace schema-createandnace schema-version-add: a retry could save a second schema or version.nace workspace-create: a retry would fail with409 workspace_name_taken.nace domains createandnace domains publish: a retry would fail with409.nace domains duplicate: a retry would make a second copy.
Document creates are retried safely, with an idempotency key: see Flags every tool shares.
For workspace jobs, reuse a key only with identical inputs. Changed inputs may replay an earlier job or be rejected, for example with 422 invalid_request; do not rely on a universal 409 idempotency_conflict check. Use a fresh key for a new selection, question or mode.