
Handle Origin check run rerequested webhooks
Subscribe to repository.check_run.rerequested so your app can answer a re-run request. Official payload: llms-full.txt → Events and OpenAPI CheckRunRerequestedWebhookPayload. Changelog notes: September 10–15, 2026.
Origin is in Early Beta and subject to change. Origin delivers this event only to the app that owns the check run, not to every repository subscriber. Declaring isRerequestable: true on Post Check Run / Batch Upsert Check Runs commits your app to answering each delivery by posting a fresh run for the same head SHA and key.
When it fires
event.type |
When it fires |
|---|---|
repository.check_run.rerequested |
A completed, re-requestable check run is re-requested (for example via Rerequest Check Run). |
Payload fields
| Field | Meaning |
|---|---|
repository |
Repository reference (id, name, owner) |
checkSuite |
Owning suite snapshot |
checkRun |
The stamped run; status is rerequested |
checkRun.conclusion / timings |
Still describe the superseded attempt until you answer |
checkRun.rerequestedAt |
Outstanding re-request stamp |
checkRun.rerequestedBy |
Principal that asked for the re-run |
checkRun.key / checkRun.sha / checkRun.externalId |
Identity you must match when posting the answer |
Sample event.payload:
{
"repository": {
"id": "repo_01k2ja2000e0080000000000q4",
"name": "rocket",
"owner": {
"slug": "acme",
"id": "ns_01k2ja2000e0080000000000p3",
"type": "team"
}
},
"checkSuite": {
"id": "crg_01k2ja2000e0080000000000h8",
"sha": "9a41f0c3d2b8e7f6a5c4d3e2f1b0a9c8d7e6f5a4",
"key": "ci-8842",
"name": "CI",
"externalId": "build-8842"
},
"checkRun": {
"id": "cr_01k2ja2000e0080000000000g7",
"sha": "9a41f0c3d2b8e7f6a5c4d3e2f1b0a9c8d7e6f5a4",
"key": "ci-8842-unit-tests",
"name": "unit-tests",
"status": "rerequested",
"conclusion": "failure",
"externalId": "run-8842",
"isRerequestable": true,
"rerequestedAt": "2026-08-02T15:10:00Z",
"rerequestedBy": {
"user": {
"id": "user_01k2ja2000e0080000000000c3",
"email": "jane@acme.dev"
}
}
}
}
Answer the re-request
- Verify the Standard Webhooks signature against
https://api.cursor.com/v1/origin/keys, then branch onevent.type === "repository.check_run.rerequested". - Read
checkRun.shaandcheckRun.key. The payload carries no pull request object — resolve a PR from your own head mapping or List Pull Requests withheadSha. - Post a fresh run for that head SHA and
keywith Post Check Run or Batch Upsert Check Runs:- New attempt history: new
externalId. - Replace in place: same
externalIdwith a newerexternalUpdatedAt.
- New attempt history: new
- Origin clears
rerequestedAtwhen your answering post lands and stores the postedstatus. Until then the run reads as pending in list views and can block required checks. - Deduplicate redeliveries on
event.id(orwebhook-id). A run may be re-requested again after you answer; each accepted re-request emits a new event.
Pitfalls
- Do not send
status: rerequestedyourself on Post / Batch Upsert — Origin rejects it withInvalidArgument(HTTP 400). - Read
conclusiononly whenstatusiscompleted; on a rerequested stamp it still describes the old attempt. - Keep the receiver answering within Origin's delivery deadline (10 seconds as of the Sep 18, 2026 changelog).