Repository navigation
Conversation
Sign-in cannot succeed on the pinned ring-mqtt v5.9.3. Ring retired the
password-grant OAuth endpoint, and v5.9.3 requires
"@tsightler/ring-client-api": "^14.3.1-beta.0"
which still posts `grant_type=password` to `/oauth/token`. Ring answers
with a body that is not a JSON object, so `response.refresh_token` is
`undefined`, the client stores a token containing only the hardware id,
and every later call fails with
401 invalid_grant - token is invalid or does not exists
ring-client-api 15.0.0-beta.2 replaces that flow with the PKCE
authorization it now requires. The caret range cannot reach a new major,
so no ring-mqtt release currently resolves to it, and every user of this
plugin is stuck at sign-in regardless of distribution.
Pin ring-mqtt 5.10.0 (dev, 6bd8ed6), which pairs that client with the
matching code. Two things change in the tree it installs:
- `scripts/start-stream.sh` and `scripts/monitor-stream.sh` are gone, so
the `chmod 755` on them aborts setup under `set -e`. Removed.
- Streaming moved from the go2rtc exec source to a helper binary. It
ships prebuilt inside the checkout that is already verified against an
immutable commit, so installing it adds no download or trust surface.
Verified end to end on Arch: sign-in returns a token carrying `rt`, six
cameras are discovered, and the helper serves RTSP on the same port 8554
the panel already expects, so stream URLs are unchanged.
This pins an unreleased commit, which is a real tradeoff. The alternative
is leaving the plugin unusable until ring-mqtt tags 5.10.0; happy to
rework this into a tag bump the moment one exists.
Note: go2rtc is now installed but unused, since only ring-mqtt spawned
it. Left in place to keep this change focused; glad to remove it in a
follow-up.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sign-in is currently broken for every user
Ring retired the password-grant OAuth endpoint. The pinned
ring-mqttv5.9.3 requires"@tsightler/ring-client-api": "^14.3.1-beta.0", which still postsgrant_type=passwordto/oauth/token.I traced what happens on a real machine. Ring replies with a body that is not a JSON object, so the client's
JSON.parsefallback leavesresponse.refresh_tokenasundefined:JSON.stringifythen drops the undefined field, and what gets saved as the refresh token is a 64-character blob containing only the hardware id:{"hid":"…"}Every subsequent call fails:
ring-client-api15.0.0-beta.2 replaces that flow with the PKCE authorization Ring now requires (/oauth/v2/authorize, code verifier, cookie jar,User-Agent: android:com.ringapp,apiVersion: 11). A caret range cannot cross a major, so no taggedring-mqttrelease resolves to it — this is not something a user can work around, and it affects every distribution, not just Arch.What this changes
Pins
ring-mqtt5.10.0 (dev,6bd8ed6), which pairs that client with the code written for it. Two consequences in the installed tree:scripts/start-stream.shandscripts/monitor-stream.shno longer exist, so the existingchmod 755on them aborts setup underset -e. Removed.Verified end to end
On Arch, against real cameras — not just a green test run:
rt(1216 chars,{"hid","rt"}) instead of the 64-char shellffprobeconfirms a live stream: 1080p HEVC + Opusnode --test tests/*.test.mjspasses 44/44.The tradeoff
This pins an unreleased commit, which I know is not ideal. The alternative is leaving the plugin unusable until
ring-mqtttags 5.10.0. Happy to rework this into a tag bump the moment one exists, or to hold it open until then.One thing I deliberately left alone:
go2rtcis now installed but unused, since onlyring-mqttever spawned it. Removing it touches the README, the removal script, and the install marker, so I kept this change focused — glad to do it as a follow-up.Note: this touches
scripts/setup-native.shand the same tests as my other two PRs. I'll rebase whichever lands second.🤖 Generated with Claude Code