> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rungst.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors and troubleshooting

> Understand handshake and subscription errors.

Control errors arrive as JSON text:

```json theme={null}
{"type":"error","code":"invalid_command","message":"..."}
```

| Code | Meaning and next step |
| - | - |
| `invalid_command` | Check the JSON, action, fields, address format, and subscription ID. Commands must be text and no larger than 4 KiB. SOL and USDC mint filters are rejected. |
| `filter_required` | Add a trader or mint filter. Starter and Growth cannot subscribe to all trades. |
| `subscription_limit_reached` | End an active subscription or check your plan limit. |
| `already_subscribed` | Unsubscribe before starting another subscription on this connection. |
| `unknown_subscription` | Use the ID of the active subscription on this connection. |
| `stream_lagged` | The client fell behind and is disconnected. Reconnect and subscribe again; missed trades are not replayed. |
| `upgrade_required` | Free does not include stream access. |

During the handshake, HTTP 403 can indicate an unregistered IP or Free-plan access; HTTP 429 indicates the socket cap for the IP has been reached. Browser WebSocket APIs hide the handshake response body. Check your plan, registered public IP, and open connections in the dashboard, and ensure the endpoint ends in `/v1/`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.