Skip to content

Conflict

A generic write conflict - the request would violate a uniqueness or state constraint that has no more specific 3xxx code.

  • 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.
  • 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.
  • Reserved - not currently emitted by any identity raise site. Concrete conflicts route through ERR-P01-IDT-3100 / ERR-P01-IDT-3110 in packages/identity/src/router/register.ts and packages/identity/src/router/humans.ts. Declared in packages/spec/identity/errors.tsp as the generic 409 fallback.
{
"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"
}
  • 0.1.0 - introduced.