fix(media): name a station that could not be reached, and one that withheld its key - #1097
Merged
Merged
Conversation
…and update UI texts
…thheld its key The SDK raises both as their own types, and both landed in `source-error` — the bucket for a source that failed. So a base that never connected and a base that would not seal what it was sent both read as the camera a viewer happened to open, which is where the next step then goes: on #1089 every camera behind one base failed identically and the reports named the cameras. Neither is the camera. Every camera behind an unreachable base fails together, so the next step is that base or the network to it. A missing session key is a refusal — an attached camera's media start has no unencrypted form — so retrying the same camera does not resolve it. Both now carry their own reason, on live and on recording, and the stage stays `sdk-source-acquisition` because that is where the session ended. Why the key was missing is the SDK's own trace vocabulary, which this plugin already retains. The contracts pin them by SDK type rather than by an error's name, so a message that merely calls itself one stays a source failure. Refs #1089
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.
Closes the last link for #1089: the SDK now raises both refusals as their own types, and this is what makes them arrive named in an archive.
Why
sourceFailureput both insource-error— the bucket for a source that failed. So a base that never connected, and a base that would not seal what it was sent, both read as the camera a viewer happened to open. On #1089 every camera behind one base failed identically and the reports named the cameras, which is where the investigation went.Neither is the camera:
station-unreachable— every camera behind an unreachable base fails together, so the next step is that base or the network to it.station-key-unavailable— an attached camera's media start has no unencrypted form, so a missing session key is a refusal rather than a fault, and retrying the same camera does not resolve it.Why the key was missing is the SDK's own trace vocabulary —
level2-unavailablewithno-cipher-key,derivation-failed,not-negotiating,session-closedorgrace-elapsed, pluscipher-fallbackandstation-resolved— which this plugin already retains. This adds the outcome the session ended on, which is the part a reason vocabulary owns.What changed
LiveSessionFailureandRecordingFailure, mapped in bothsourceFailurefunctions, and admitted to the diagnostics reason allowlist so they reach an archive.sdk-source-acquisition, because that is where the session ended.0.2.0-beta.10, which is what exports the two types.Verified
npm run verifygreen: prettier, ECS guard,tsc, 893 tests / 50 files.npm run qualify:releaseclean against the exact pin — 273 packed files, no dist-tag, no symlinked install.StationBusyErrorstays a source failure. A name is a string any thrower can write.