# MemberDirectory.failed

URL: /business/events/MemberDirectory.failed · Id: `event:MemberDirectory.failed`

> A Customer’s directory stopped pushing, or its pushes are refused, so access no longer follows it.

A [Customer](/business/nouns/customer)’s directory stopped pushing, or its pushes are refused, so access no longer follows it.

| Property | Value |
| --- | --- |
| Raised by | No Verb: the rail raises it |
| Noun | [Member Directory](/business/nouns/member-directory) |
| Moves | [Member Directory](/business/nouns/member-directory) `active` to `failing` |
| Wakes | None. |

### Payload
Each delivery is an [Event](/business/nouns/event) record. `data` holds the Member Directory as it stands, and `previous` holds the state it left.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | `MemberDirectory.failed`. |
| `at` | `datetime` | Yes | When it happened. |
| `seq` | `integer` | No | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. |
| `data` | `json` | Yes | The Thing as the Action left it. |
| `data.memberDirectory` | [Member Directory](/business/nouns/member-directory) | Yes | The Member Directory as the change left it. |
| `data.memberDirectory.state` | `string` | Yes | Where it stands; only `active` fills Roles. |
| `data.memberDirectory.groupRoles` | `json` | No | Which directory group fills which Role in the Tenant. |
| `data.memberDirectory.lastChangeAt` | `datetime` | No | When the Customer’s directory last pushed a change. |
| `data.cause` | `string` | Yes | What failed: `tokenRevoked`, `noPushIn24h`, or `pushRefused`. |
| `data.previous.state` | `string` | Yes | The `state` before this Event: `active`. |

### Example
```json
{
  "$id": "https://api.sb/leaseline.app/events/evt_WpKoq0QAW6",
  "$type": "Event",
  "name": "MemberDirectory.failed",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "memberDirectory": {
      "$id": "https://api.sb/leaseline.app/member-directories/directory_qZldlwGLVN",
      "$type": "MemberDirectory",
      "state": "failing",
      "groupRoles": {},
      "lastChangeAt": "2026-10-22T12:00:00Z"
    },
    "cause": "tokenRevoked",
    "previous": {
      "state": "active"
    }
  },
  "seq": 449
}
```