# Troubleshooting

## Responses of the Plesk REST API

| Response | Cause | Action |
|---|---|---|
| `403`, body `{"code": 1024, "message": "There are no available resources of this type (...)"}` | A quota of the subscription is exhausted, for example the number of databases. | Delete a resource of that type. See [Limits](/limits). |
| `403`, body `{"code": 0, "message": "Permission denied"}` | The subscription key is not permitted to perform the operation. Refused operations include choosing the database server, listing extensions, running commands and reading DNS records. | None. The operation is not available. |
| `400` about an FTP login, or `403` with code `1024` for "sites", when creating a domain | Domains other than subdomains are not part of the plan. | Create a subdomain. See [subdomains](/examples/subdomains). |
| `200` for an update, resource unchanged | Plesk ignores fields it does not support in updates (for example `aliases`). | Read the resource back to confirm the change. |
| `404` with an HTML body from the platform | The path is not served by the gateway. | Use the base paths in the [API reference](/api). |

## Responses of the platform

| Response | Cause | Action |
|---|---|---|
| `401 invalid_key` | The key is missing, revoked, expired, or its subscription is not available. | Issue a new key. |
| `403 blocked_path` | The target is `/auth` or an extension that is not offered. | None. The target is not available. |
| `400 bad_path` | The target contains dot segments, encoded slashes or other unsafe characters. | Correct the path. |
| `429 rate_limited` | 120 requests per minute per key exceeded. | Wait for the number of seconds in `Retry-After`. |
| `409 key_exists` | The subscription already has an active key. | Revoke the key with `DELETE /v1/subscriptions/{id}/keys/{keyId}`, then issue a new one. |
| `409 idempotency_key_spent` | The `Idempotency-Key` belongs to a deleted subscription. | Use a new key. |
| `409 quota_exceeded` | The account has 5 active subscriptions. | Delete a subscription. |
| `403 disclosure_required` | The research disclosure has not been acknowledged. | Acknowledge it in the cabinet. |
| `502 upstream_unavailable`, `504 upstream_timeout` | Plesk did not answer. | Repeat the request. |

## Timing

| Observation | Cause |
|---|---|
| A request to a new subscription or subdomain fails for a few seconds. | The web server has not yet applied the configuration of the new site. Repeat the request. |
| A new subdomain answers over HTTP only. | The certificate is issued after the subdomain exists. See [subdomains](/examples/subdomains). |
| `GET /installations` of WP Toolkit returns `[]` after an install request. | The installation appears after the background task is `done`. |
| `delete_subscription` is accepted and the subscription is still listed. | Deletion takes approximately 2 minutes. |

## MCP clients

| Observation | Cause | Action |
|---|---|---|
| A client lists fewer tools than the [MCP reference](/mcp). | The client uses a tool list fetched earlier. | Reconnect the server. |
| A client reports that sign-in is required. | The access token expired or was revoked. | Authorize again (`/mcp` in Claude Code, `codex mcp login plsk`). |
| `blocked_method` | The method creates credentials or sessions. | None. The method is not available. |

Reports about behavior that is not described here: [Feedback](/feedback).
