Skip to main content
All websocket channels may return an error frame instead of the expected response. Error frames share a single, consistent schema.

Error Envelope

Fields

Note: incoming_message uses the same tagged format as requests ({ "type": "<snake_case>", "params": { ... } }).

Error Codes

These values map 1:1 to the server enum:

Rate limiting notes

The server computes message weight by the message "type" (e.g., "add_order", "cancel_order") and applies limits over a sliding window. Some messages are heavier than others. If you see RateLimited, delay and reduce frequency; prefer fewer, larger requests when possible.

Examples

1) Invalid JSON

2) Already authenticated

3) Invalid parameter

4) Permission denied

5) Rate limited

6) Server error

Client Handling Patterns

Authentication & Errors

  • trade.qfex.com requires authentication within 1 minute of connecting.
  • Attempting to re-authenticate an already authenticated connection yields AlreadyAuthenticated.

Troubleshooting Checklist

  1. Validate JSON (types/enums/required fields).
  2. Respect rate limits (reduce burstiness; batch where possible).
  3. Ensure your API key has the right permissions.
  4. Log incoming_message from error frames to quickly reproduce issues.
  5. For persistent ServerError, contact support@qfex.com with timestamp and offending incoming_message.