List and Read
status=open|answered|cancelled, issueId, sourceDiscussionId, executionWorkspaceId, sourceCommanderConversationId, scope=mine|all, and limit (maximum 200; service default 100). scope defaults to mine; supplying a source filter searches that source rather than restricting results to the current recipient.
The detail route returns { question, capabilities }. The inline list also includes capabilities so clients can render actions without another request.
Answer
expectedVersion protects against concurrent changes. A stale version returns 409.
An idempotency key may be retried safely. Reusing the same key after the question was answered returns the existing result; a different answer against an answered question conflicts. A linked terminal task cannot be answered.
Reassign or Take Over
Cancel or Retry Continuation
State and Delivery
Question status isopen, answered, or cancelled. Every mutation increments version.
Continuation status is not_needed, pending, dispatched, completed, or failed. Answering records an immutable continuation envelope containing the task snapshot, acceptance criteria, question, answer, provenance, and continuation instructions. Delivery uses a durable request/outbox and may be retried; callers should not assume exactly-once execution.
Questions also snapshot their SLA: slaDurationHours, slaSource (company or project), slaSourceId, dueAt, slaBreachedAt, and escalationRecipientUserId. Project SLA overrides company SLA. The company default is 24 hours, with an allowed range of 1–720 hours.
Common Errors
403— caller cannot read or perform the requested action404— company, question, task, or recipient not found409— stale version, invalid state, terminal task, or conflicting answer400— invalid payload