---
title: "Run the troubleshooter"
method: GET
path: "/servers/{guild_id}/troubleshoot"
tags: ["Troubleshooting"]
---

# Run the troubleshooter

`GET /servers/{guild_id}/troubleshoot`

## Request

- Base URL: `https://quark.bot/api`
- URL: `https://quark.bot/api/servers/{guild_id}/troubleshoot`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/quark-bot-discord/apis/quark-api/docs/servers/:guild_id/troubleshoot/get.ts> (a function with typed inputs; its response is checked against the schema)

Checks the server's configuration, Quark's permissions in each log channel and the delivery path, and returns what it found. This is the report `/troubleshoot` and the dashboard show.

## Path parameters

- `guild_id` string, required

## Query parameters

- `live` '0'
- `bot` 'pro'

## Response `200`

The report.

- DiagnosticReport
  - `guildId` string
  - `botId` string
  - `generatedAt` integer
  - `status` 'broken' | 'degraded' | 'healthy'
  - `findings` Finding[]
    - `id` string: The kind of problem, for example `NO_LOG_CHANNEL` or `MISSING_WEBHOOK`.
    - `severity` 'blocking' | 'degraded' | 'info'
    - `title` string
    - `detail` string
    - `scope` object: What the finding applies to: a channel, category, log types, an ignore entry or permissions.
    - `fix` union
      - Fix: An automatic fix. Take it from the `fix` field of a finding in the troubleshooting report.
        - `kind` 'initialise_guild' | 'register_webhook' | 'clear_log_channel' | 'enable_log_type' | 'remove_ignore' | 'disable_bot_ignore', required
        - `automatic` boolean: True if this endpoint can apply the fix. A fix with `automatic: false` has to be done by hand and is rejected.
        - `category` 'mainChannel' | 'modlogCategory' | 'membersCategory' | 'actionsCategory' | 'textCategory' | 'voiceCategory' | 'filesCategory' | 'serverCategory' | 'rolesCategory' | 'channelsCategory' | 'quarkCategory': For `register_webhook` and `clear_log_channel`.
        - `channelId` string: For `register_webhook`.
        - `logType` integer: For `enable_log_type`.
        - `ignoreType` integer: For `remove_ignore`.
        - `value` string: For `remove_ignore`.
        - `scope` 'executors' | 'targets': For `disable_bot_ignore`.
      - object: A fix that has to be applied by hand.
  - `counts` object
    - `blocking` integer
    - `degraded` integer
    - `info` integer
  - `summary` object
    - `configuredCategories` string[]
    - `firstLogAt` integer, nullable: Unix timestamp in seconds.
    - `premiumLevel` integer: 0 free, 1 Pro Lite, 2 Quark Pro.
    - `incomplete` string[]: Checks that could not be run.

## Other responses

- `401`: No token was sent, or the token is not valid: malformed, expired or revoked. A token sent with a scheme other than `Bearer` is refused too.
- `403`: The token belongs to a different server, or is not an Admin token.
- `429`: Too many requests. Wait for the number of seconds in `Retry-After`.

## Changes

- **2026-10-02** `16860ec3ac6f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/quark-bot-discord/apis/quark-api/changes/servers/:guild_id/troubleshoot/get.md)

---

[API](https://skmtc.dev/quark-bot-discord/apis/quark-api.md) - [All operations](https://skmtc.dev/quark-bot-discord/apis/quark-api/llms.txt) - [OpenAPI document](https://skmtc.dev/quark-bot-discord/apis/quark-api/revisions/53696c705ecb?raw)
