---
title: Disabled apps and accounts
description: What happens when Tori disables an app or an account, what you see, and how to reach Tori about it.
---

Tori can disable a single app, or a whole account together with every app in
it. It does so when an app or an account breaks the
[terms of service](https://tori.host/terms#suspension), for example abuse, or
something that endangers the security or operation of Tori or of other
customers. Only Tori disables an app or an account, and only Tori can enable it
again. Nothing is deleted either way.

This is not the billing hold. An unpaid invoice refuses deploys and stops
serving on a schedule of its own, and paying the invoice lifts it
([Plans and billing](/guides/billing/#when-a-payment-fails)). Nothing you do in
the console or the CLI lifts a disable.

## A disabled app

- **It is not served.** Its `<slug>.tori.cloud` address answers HTTP 404 with
  Tori's "nothing here" page, the same answer as an address with no app behind
  it. Its custom domains stop serving it too.
- **Deploys and rollbacks are refused.** `npx tori.host`, the MCP deploy tool
  and the API all get HTTP 403 with this body, and the CLI prints the sentence:

  ```json
  { "error": "This app has been disabled by Tori.", "code": "app_disabled" }
  ```

- **The console says so.** The app page shows a banner with the date and time
  the app was disabled. The apps list marks the app **disabled** in place of its
  status and does not count it as running, and the **deploys** tab does not
  offer a rollback.
- **Nothing is deleted.** Its deploys, environment variables, custom domains
  and data are kept. When Tori enables the app again, the live deploy serves
  again without a new deploy. A custom domain can take a few minutes longer,
  while its certificate is issued again.
- **You can still delete it**, the same way as any other app.

Through the API, an app carries `disabledAt`: the time Tori disabled it, or
`null`. It is on every app that `GET /api/apps` and `GET /api/apps/{slug}`
return ([API reference](/api/reference/)). The reason Tori recorded is not part
of the API.

## A disabled account

- **You cannot sign in.** Requesting a magic link works as before, but opening
  it ends on the sign-in page with *This account has been disabled by Tori.*
  instead of the console. The API answers that request with HTTP 403 and
  `"code": "account_disabled"`.
- **Sessions and API tokens stop working.** An open console is signed out, and
  the CLI, the MCP server and CI jobs using `TORI_TOKEN` get HTTP 401 on every
  request. The CLI reports a refused token: from a 401 it cannot tell a disabled
  account from a revoked token.
- **None of its apps is served**, whatever the state of each app.
- **Nothing is deleted.** Apps, deploys, domains, data and API tokens are kept.
  When Tori enables the account again, its apps serve again and its API tokens
  work as they did. Console sessions do not come back: sign in again.

## Contacting Tori

Write to [hello@tori.host](mailto:hello@tori.host) from the address of the
account, and say which app or account the message is about. The console's
banner and sign-in notice, and the CLI's refusal, give the same address.

Download this page as [Markdown](/downloads/markdown/guides/disabled.md).
