Skip to content

Pass subscription errors to an on_error callback - #249

Open
walthowd wants to merge 1 commit into
bretterer:mainfrom
walthowd:feat/subscription-errors
Open

walthowd wants to merge 1 commit into
bretterer:mainfrom
walthowd:feat/subscription-errors

Conversation

@walthowd

@walthowd walthowd commented Nov 14, 2026 •

Copy link
Copy Markdown

When a subscription fails (e.g. the vehicle refuses a command it's waiting on), the server sends an error message that was only logged at debug, so callers could only time out. Subscriptions now take an optional on_error callback. Existing callers are unchanged.

The server ends a subscription with an `error` message when it fails, for
example when the vehicle refuses a command the subscription waits on. The
web socket only logged those at debug, so a caller waiting on the
subscription could only time out. Subscriptions can now take an `on_error`
callback that gets the error message; existing callers are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FxWHBTrHU6eTPotwMWgtJF
walthowd added a commit to walthowd/rivian-python-client that referenced this pull request Nov 14, 2026
`start_gear_guard_live_stream` starts a live camera stream the way the
Rivian app does and returns its Kinesis Video WebRTC config (signaling
endpoint, ICE servers and role), for a viewer to join:

- It subscribes to `gearGuardLiveConfig` with a fresh command id, then sends
  the signed `security.video_monitoring.start_live_streaming` command with
  that same id; the cloud routes the config by it.
- `parallax.encode_live_streaming` builds the command's payload from a new
  `LiveStreamingRequest` schema; `GEAR_GUARD_CAMERAS` names the cameras.
- A refused start (e.g. a camera the vehicle doesn't have) raises
  RivianApiException straight away, through the subscription's `on_error`.

It needs Gear Guard video monitoring on and a paired phone. The vehicle
serves one session at a time, about 3 minutes each and an hour a day.

Builds on bretterer#249.

Verified against a 2026 R1S (Gen 2) running 2026.36.01: the config arrived
within seconds of the start when the vehicle was awake, and the front and
right cameras streamed in a WebRTC viewer. A sleeping vehicle can take
longer to wake than the default 40 second timeout. Not tested: the rear,
left and bed cameras, the R2's cabin camera.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FxWHBTrHU6eTPotwMWgtJF
@walthowd
walthowd force-pushed the feat/subscription-errors branch from 4c27ea0 to 3adad09 Compare November 14, 2026 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant