connector.outage_compensated
A closed connector outage settled — how many members had time banked, how much each received, and how many invites lost during the outage were re-sent.
When this fires
Once per outage, shortly after connector.outage_closed. The settlement runs from the queue: it first re-sends any invite that never reached a member while the connector was refusing the installation (grants_replayed), then, when the outage lasted an hour or more, ended as recovered or replaced, and the project's Outage Compensation setting is on, banks the outage's length on every live purchase that unlocks a place on that connector (members_extended, one member.access_extended each). The creator receives the same summary by email, on their connected account and in the notification centre; it is also the Compensation column of the Recovery History page.
Required ability
project-connector:view — token must carry this at mint time to subscribe an endpoint to this event.
Payload
{
"id": "evt_01HX...",
"type": "connector.outage_compensated",
"created_at": "2026-09-13T13:21:00Z",
"api_version": "2026-05-01",
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"data": {
"connector": "telegram",
"extended_seconds": 11700,
"grants_replayed": 2,
"members_extended": 18,
"outage_id": "9c1e4d2a-7b3f-4e8a-a2d1-5f6b7c8d9e0f",
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13"
}
}Field reference
| Field | Type | Notes |
|---|---|---|
id | string ULID | Unique event id, prefixed evt_. Use for idempotent processing. |
type | string | Always connector.outage_compensated for this event. |
created_at | ISO 8601 timestamp | Server-side emission time. |
api_version | string | Webhook API contract version. |
project_id | string UUID | Project this event belongs to. |
data.connector | string | The connector that was refused. |
data.extended_seconds | integer | The seconds each compensated member received; 0 when nobody was. |
data.grants_replayed | integer | How many purchases had their invites re-sent because none reached the member during the outage. |
data.members_extended | integer | How many members had the time banked. |
data.outage_id | string UUID | The outage row, the same id the opened and closed events carried. |
data.project_id | string UUID | Mirrors top-level project_id. |
Caveats
- Fires with
members_extended: 0when the outage was shorter than an hour, ended with an uninstall, or the project switched Outage Compensation off; the creator is not emailed in that case. - Money never moves: no charge, refund or renewal date changes. Recurring members receive the time at the end of their membership.
Related events
member.access_extended— one per compensated member.connector.outage_closed— the outage this settles.- Connector events overview — back to family overview.
How is this guide?