already_exists
already_exists
Section titled “already_exists”HTTP status: 409 Conflict
How to fix
Section titled “How to fix”- Use a different name or identifier. Workflow names, schedule names, API key names, and integration output names are unique per-org. Pick a different value.
- Load the existing record via
GET /api/v1/<resource>?name=...to confirm whether the duplicate is yours (a retry succeeding twice) or a teammate's resource. - If you're retrying after a network blip, treat the duplicate as success — your first attempt likely landed. The CLI does this automatically; bare HTTP clients need to handle it.
- For workflows specifically, consider versioning the name (
my-workflow-v2) rather than reusing identifiers across iterations. Old versions stay queryable by ID.
What this means
Section titled “What this means”Your write conflicts with an existing record under the same unique key. We use 409 (not 400) because the request was syntactically fine — the conflict is with persistent state, not the input. This is a specific case of conflict.
Related errors
Section titled “Related errors”conflict— generic state conflictjob_terminal— job already finished, can't mutateworkflow_disabled— workflow exists but paused
Still stuck?
Section titled “Still stuck?”Contact support with your request_id (looks like req_01HF3JKB...). We'll surface the conflicting record.