revert_recovery_operation
Undo a completed Disaster Recovery inside its window — a swapped channel put back, or the previous sign-in account restored.
A channel recovery is undone one swap at a time: name the resource_id to put back on its old chat, and every active member is re-admitted there again. An account relink is undone whole, moving sign-in back to the previous account, signing the creator out everywhere and opening a disputed-relink incident for support; name no resource_id. A bot replacement cannot be undone. The window is 24 hours from completion by default; revertible on the operation says whether it is still open. Only the creator who ran the recovery may undo it.
This tool is annotated destructive: a client that supports the annotation asks a human before running it. The REST twin is POST /v1/recovery/operations/{operation}/revert.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Delivered to every endpoint subscribed to it once the change is made.
Annotations
A client that honours annotations asks a person before running it.
Arguments
operation_id*stringUUID of the completed recovery to undo, from `list_recovery_operations`.
resource_idstringoptionalFor a channel recovery: UUID of the resource to put back on its old chat. Omit for an account relink.
What it returns
{ "data": { "id": "9a4d2e71-5b38-4c6f-8e12-3d7c9b0a5f21", "kind": "resources", "kind_label": "Channels and Groups", "status": "reverted", "status_label": "Reverted", "connector": "telegram", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "project_name": "Research Premium", "grant_id": null, "automatic": false, "on_demand": true, "failure_reason": null, "started_at": "2026-09-12T10:00:00Z", "completed_at": "2026-09-12T10:00:31Z", "reverted_at": "2026-09-12T21:50:00Z", "revertible": false, "revert_window_ends_at": "2026-09-13T10:00:31Z" }, "meta": {}}How it fails
VALIDATION_FAILEDthe window has closed, the swap is already put back, a bot replacement, a channel recovery with no resource_id, or not the creator's own recovery; the context carries the reason.
RESOURCE_NOT_FOUNDoperation_id is not in this creator's ledger, or resource_id is not a resource they manage.
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks project-recovery:update.
How is this guide?
Last updated on
request_resource_standby
Ask the creator, through the connector, to pick the chat that becomes the standby for one resource. Nothing is linked by the call itself.
set_resource_standby_mirror
Switch the live mirror into a resource's standby on or off, so a failover lands members in a channel that already holds the content.