Output and reference

Retries and timeouts

nace uses the Python SDK's default retry policy:

RuleDefault
What it retriesA 408, a 429, a 5xx (unless the error says "retryable": false), a dropped connection or a timeout.
How oftenUp to 2 times.
How long it waitsAs Retry-After says, else backing off from 0.5 s up to 5 s.
Total retry budgetDisabled 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-create and nace schema-version-add: a retry could save a second schema or version.
  • nace workspace-create: a retry would fail with 409 workspace_name_taken.
  • nace domains create and nace domains publish: a retry would fail with 409. 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.