Skip to content

Error & Status Codes

The Gateway is deliberately forgiving: malformed or unknown messages are ignored rather than rejected, so clients stay robust. This page lists the conditions you should handle.

Connection states

Condition How it surfaces What to do
Connection refused / timeout WebSocket connect() fails within ~5 s Wrong IP, Gateway not running, or wrong network — see Troubleshooting
Connection lost WebSocket closes (onDone/onError) Show a "connection lost" state and offer reconnect
No status frames Connected, but no status within ~2 s Gateway reachable but not broadcasting — check the Gateway process

Message handling rules

  • Invalid JSON → ignored by the Gateway.
  • Unknown type → ignored by the Gateway.
  • Out-of-range values (e.g. vx outside -1…1) → clamped/normalized on the robot side; keep clients within range.

Robot warnings

The warning field of the status frame carries robot-reported problems as human-readable text (or null when healthy). Surface it prominently; the app shows it as a red banner and takes priority over mode hints.

Firmware capability errors

Agent-based actions can fail on older firmware with a "firmware doesn't support AGENT" condition. Treat the available action set as capability-dependent: probe/limit the actions you offer and degrade gracefully instead of assuming every action exists.

Underlying SDK error codes

The uMe on-board SDK defines its own numeric error codes for low-level operations. These are handled on the robot inside the Gateway; today they are summarized to clients through the warning field. Exposing structured error codes over the Gateway is on the Roadmap.