Conflict
ERR-P01-IDT-0409 - Conflict
Section titled “ERR-P01-IDT-0409 - Conflict”Summary
Section titled “Summary”A generic write conflict - the request would violate a uniqueness or state constraint that has no more specific 3xxx code.
When this is raised
Section titled “When this is raised”- Reserved as the transport-level fallback for conflicting writes. The
concrete conflicts that the identity service can produce today carry
their own dedicated codes instead: duplicate email
(
ERR-P01-IDT-3100) and duplicate slug (ERR-P01-IDT-3110). - A future write surface that hits a unique constraint without a dedicated business code would surface this generic 409.
What to do
Section titled “What to do”- Re-read the current state of the resource and reconcile before retrying. Do not blindly retry - the conflict will recur until the colliding state changes.
- If you expected a dedicated code (3100 / 3110) and got this generic one, report it - the raise site likely needs a more specific code.
Server-side cause
Section titled “Server-side cause”- Reserved - not currently emitted by any identity raise site. Concrete
conflicts route through
ERR-P01-IDT-3100/ERR-P01-IDT-3110inpackages/identity/src/router/register.tsandpackages/identity/src/router/humans.ts. Declared inpackages/spec/identity/errors.tspas the generic 409 fallback.
Example response
Section titled “Example response”{ "type": "https://citizenry.id/errors/ERR-P01-IDT-0409", "title": "Conflict", "status": 409, "code": "ERR-P01-IDT-0409", "message": "the request conflicts with the current resource state", "method": "POST", "instance": "/v1/agent/register", "request_url": "https://api.citizenry.id/v1/agent/register", "timestamp": "2026-05-17T07:00:00.000Z"}Related codes
Section titled “Related codes”ERR-P01-IDT-3100- human email already in use (the concrete 409 forPOST /v1/humans).ERR-P01-IDT-3110- slug taken (the concrete 409 for register).
Changelog
Section titled “Changelog”- 0.1.0 - introduced.