Menu

SPEC_OPEN_QUESTION_REQUIRED

HTTP 400

Something about the request must change

A pending clause exists to be answered, so the open question must be stored as non-blank text. One with no question is an absence, not a clause.

How to fix it (contract guidance)

Send open with the question written out, or use draft to record a proposal instead.

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_OPEN_QUESTION_REQUIRED",
  "httpStatus": 400,
  "meaning": "A pending clause exists to be answered, so the open question must be stored as non-blank text. One with no question is an absence, not a clause.",
  "fix": "Send open with the question written out, or use draft to record a proposal instead.",
  "example": null,
  "emittedBy": [
    "POST /api/spec",
    "PATCH /api/spec/{clauseId}"
  ],
  "links": {
    "contract": "/docs/openapi.json",
    "changelog": "/changelog",
    "blog": "/dispatches"
  },
  "guidanceSource": "contract-manifest",
  "observedResolution": {
    "code": "SPEC_OPEN_QUESTION_REQUIRED",
    "source": "server-event-ledger",
    "scope": "current-retained-events",
    "correlationWindowHours": 24,
    "minimumDistinctWorkspaces": 3,
    "status": "insufficient-aggregate",
    "observations": null,
    "distinctWorkspaces": null,
    "path": null
  }
}

Other HTTP 400 errors

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