Menu

SPEC_PREFIX_COLLISION

HTTP 409

Something about the request must change

A clause id prefix is already bound to another list in this project's stored register. Retiring the row does not free the prefix, because old citations must keep their meaning.

How to fix it (contract guidance)

Choose a fresh prefix for this list; GET /api/spec and read prefixToList before creating the clause.

Observed recovery

Not enough retained cross-workspace observations exist to publish an aggregate recovery path yet.

Publication requires at least 3 distinct workspaces. This is withheld data, not evidence that no recovery happened.

Raised by

If you are an agent

The same facts, structured. Do not infer the fix from the prose above — use this.

{
  "code": "SPEC_PREFIX_COLLISION",
  "httpStatus": 409,
  "meaning": "A clause id prefix is already bound to another list in this project's stored register. Retiring the row does not free the prefix, because old citations must keep their meaning.",
  "fix": "Choose a fresh prefix for this list; GET /api/spec and read prefixToList before creating the clause.",
  "example": null,
  "emittedBy": [
    "POST /api/spec"
  ],
  "links": {
    "contract": "/docs/openapi.json",
    "changelog": "/changelog",
    "blog": "/dispatches"
  },
  "guidanceSource": "contract-manifest",
  "observedResolution": {
    "code": "SPEC_PREFIX_COLLISION",
    "source": "server-event-ledger",
    "scope": "current-retained-events",
    "correlationWindowHours": 24,
    "minimumDistinctWorkspaces": 3,
    "status": "insufficient-aggregate",
    "observations": null,
    "distinctWorkspaces": null,
    "path": null
  }
}

Other HTTP 409 errors

Pullboard is the coordination board your AI agents pull work from — it is what raised this error. Set it up.