recovery.* events
The Disaster Recovery ledger as it moves: incidents opening and resolving, recoveries starting, finishing, failing and being undone, standbys kept and consumed, channels swapped and accounts relinked.
The Disaster Recovery ledger as it moves: incidents opening and resolving, recoveries starting, finishing, failing and being undone, standbys kept and consumed, channels swapped and accounts relinked.
Disaster Recovery watches a creator's sign-in account, every project's bot and every channel or group a project sells, and swaps in what it can when a ban lands. Everything it detects and everything it does is a row in the recovery ledger, and every row change is announced here. The events name Subscriby ids and the connector key only; a platform's own identifiers never travel in a webhook.
Every recovery.* event requires project-recovery:view on the subscribing token. Events about a project carry that project's project_id; events about the creator's own account (an account incident, an account relink) carry project_id: null and are delivered to the endpoints of the team the creator owns.
| Event | Fires when |
|---|---|
recovery.incident_opened | A health probe finds the creator's account unreachable, a project's bot refused, or a channel gone or no longer administered. |
recovery.incident_resolved | A later probe finds the thing healthy again, or a recovery replaces it. |
recovery.operation_started | A recovery of any kind begins. Once per operation, so swaps absorbed into a running channel recovery fire no second start. |
recovery.operation_completed | The recovery finishes and its changes stand. |
recovery.operation_failed | The recovery fails before changing anything. |
recovery.operation_reverted | The creator undoes a recovery inside its window; one event per swap put back, or one for an account relink. |
recovery.standby_registered | A standby bot is registered for a project, or a standby chat is linked to a resource. |
recovery.standby_removed | A standby is removed by the creator, replaced by another, or used in a recovery. |
recovery.installation_failed_over | Automatic failover switches a project onto its standby bot without the creator, after the platform refused the live one. |
recovery.resource_failed_over | Automatic failover swaps a banned channel for its standby without the creator. |
recovery.resource_replaced | The creator swaps a resource onto a replacement chat, in a recovery or on demand. |
recovery.identity_relinked | The creator's sign-in account is relinked to a newly detected account, or the backup account is switched in. |
recovery.readiness_changed | The readiness checklist's state differs from the last one recorded, after a recovery event or the nightly pass. |
Example payload
{
"id": "evt_01HX...",
"type": "recovery.resource_failed_over",
"created_at": "2026-09-12T03:19:42Z",
"api_version": "2026-05-01",
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"data": {
"operation_id": "9a4d2e71-5b38-4c6f-8e12-3d7c9b0a5f21",
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"resource_id": "b73c5f21-9d80-4a6e-8215-4f70ce13a9d6",
"resource_title": "Lounge",
"connector": "telegram",
"replaced_at": "2026-09-12T03:19:41Z"
}
}Required ability
Tokens subscribing to recovery.* events must carry project-recovery:view.
Related
- Disaster Recovery endpoints: read the same ledger: incidents, operations with their undo state, the roll call, allowances and readiness.
- Disaster Recovery: what the program does and why.
project.resource.status_changed: the health verdict that precedes a resources incident.
Events
recovery.incident_opened
A health probe found the creator's sign-in account unreachable, a project's bot refused by the platform, or a channel or group gone or no longer administered.
recovery.incident_resolved
An open incident closed: a later probe found the thing healthy again, or a recovery replaced it.
recovery.operation_started
A recovery began: run by the creator, by the platform on their behalf, or on demand for a healthy resource.
recovery.operation_completed
A recovery finished and its changes stand; when it can be undone, the window is open from now.
recovery.operation_failed
A recovery failed before changing anything; the allowance it spent is given back.
recovery.operation_reverted
The creator undid a recovery inside its window: a swapped channel put back, or the previous sign-in account restored.
recovery.standby_registered
A spare bot is kept ready for a project, or a spare channel or group is kept ready for one resource.
recovery.standby_removed
A standby is no longer kept: the creator removed it, registered another in its place, or a recovery consumed it.
recovery.installation_failed_over
Automatic failover switched a project onto its standby bot without the creator, because the platform refused the live one: the bot-side twin of `recovery.resource_failed_over`.
recovery.resource_failed_over
Automatic failover swapped a banned channel or group for its standby without the creator: the failover you sleep through.
recovery.resource_replaced
The creator pointed a resource at a replacement channel or group: in a recovery after a ban, or on demand for a healthy resource.
recovery.identity_relinked
The creator's sign-in account moved to another account on the connector: a newly detected one, or the backup switched in.
recovery.readiness_changed
A line of the Disaster Recovery readiness checklist changed state, and here is the whole checklist as it stands now.
Compare with the current pages
How is this guide?