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.
vxoutside-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.