Files

72 lines
2.2 KiB
Markdown

# Destroying Actors
> Source: `src/content/docs/actors/destroy.mdx`
> Canonical URL: https://rivet.dev/docs/actors/destroy
> Description: Actors can be permanently destroyed. Common use cases include:
---
- User account deletion
- Ending a user session
- Closing a room or game
- Cleaning up temporary resources
- GDPR/compliance data removal
Actors sleep when idle, so destruction is only needed to permanently remove data — not to save compute.
## Destroying An Actor
### Destroy via Action
To destroy an actor, use `c.destroy()` like this:
### Destroy via HTTP
Send a DELETE request to destroy an actor. This requires a token for authentication:
- **Rivet Cloud**: Use the service key (`sk_*`) from your `RIVET_ENDPOINT` URL. Find this in the dashboard under **Settings > Advanced > Backend Configuration** (e.g. the `sk_...` portion of `https://default:sk_abc123@api.rivet.dev`).
- **Self-hosted**: Use an admin token.
```typescript
const actorId = "your-actor-id";
const namespace = "default";
const token = "your-token";
await fetch(`https://api.rivet.dev/actors/${actorId}?namespace=${namespace}`, {
method: "DELETE",
headers: {
Authorization: `Bearer ${token}`,
},
});
```
```bash
curl -X DELETE "https://api.rivet.dev/actors/{actorId}?namespace={namespace}" \
-H "Authorization: Bearer {token}"
```
To find the actor ID, you can list actors first:
```bash
curl "https://api.rivet.dev/actors?namespace={namespace}" \
-H "Authorization: Bearer {token}"
```
### Destroy via Dashboard
To destroy an actor via the dashboard, navigate to the actor and press the red "X" in the top right.
## Lifecycle Hook
Once destroyed, the `onDestroy` hook will be called. This can be used to clean up resources related to the actor. For example:
## Accessing Actor After Destroy
Once an actor is destroyed, any subsequent requests to it will fail with an `actor.not_found` error (`{ group: "actor", code: "not_found" }`). The actor's state is permanently deleted.
## API Reference
- [`ActorHandle`](/typedoc/types/rivetkit.client_mod.ActorHandle.html) - Has destroy methods
- [`ActorContext`](/typedoc/interfaces/rivetkit.mod.ActorContext.html) - Context during destruction
_Source doc path: /docs/actors/destroy_