-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split RESTRICTIONS_CANNOT_BE_MET into two errors #1368
Comments
Yes, it's those two cases. I think we could split the RESTRICTIONS_CANNOT_BE_MET error into two to distinguish between application and key system restrictions. Alternatively we could log the reason when we see an unmet restriction for a variant. This would require minimal changes to the code, but won't be as effective in communicating the cause of the error to the developers. @chrisfillmore would logging work for you? @joeyparrish would you schedule this as you see fit? |
Thanks @ismena. Logging would not help because I'm often working backwards from data which tells me that our users encounter this error in the wild, but we don't actually have a reproducible test case (yet). I see the problem you're describing. Variants may be restricted for a variety of overlapping reasons. It could be that all variants are restricted, but for different reasons. Perhaps restrictions need to be more formally defined in the player, and the collection of all restrictions can be passed along with the error. This is just a thought, and would need some fleshing out. |
Having said that, splitting the error into two would, on its own, be extremely helpful. :) |
In that case we could probably start by splitting the error to help you short term and discuss the possible refactoring to make more information about this available further down the road. Let me be arrogant and schedule splitting the error for v2.5. If it gets pushed back, you'll know I got in trouble with @joeyparrish ;) |
@joeyparrish I am confirming with our product team but I believe we have two basic requirements:
I expect that this would require some non-trivial refactoring in Shaka. Do you think it is feasible for 2.5? I am happy to contribute if we agree on a design (and if product confirms we need this). |
I am thinking that it will be too simplistic to throw a different error based on app vs key system restrictions. There can be different variants that are restricted for different reasons and having different error codes would require us to pick which cases to favor and throw a not-so-accurate error message. How about instead adding something to the {
hasAppRestricted: false, // App-applied restrictions
hasMissingKeys: true, // Don't have the required keys
hasOutputRestricted: true, // Key system output restriction
} The above would indicate that some streams have output restricted and some don't have the required keys. This would allow you to handle them separately and construct an accurate error message/response. |
Edit: reflecting on it some more, I realize you're right. The app may have selected a minimum bitrate of 3Mbps, leaving some playable higher level variants, but high level variants could end up producing an error due to misconfiguration at the headend. Your plan sounds good to me. Would it be possible to include detailed information? Such as:
|
We are seeing a high rate of RESTRICTIONS_CANNOT_BE_MET in our production application. We recently updated from 2.2.8 -> 2.3.3, but I haven't yet determined if that has had an impact on this error rate. At the moment my concern is that there isn't any information provided about the circumstances surrounding the error.
As far as I can tell, there are only two possible causes:
output-restricted
orinternal-error
)It would be helpful if we could differentiate between the two. In particular, if the CDM imposed some restriction, it would be nice to know what the key status was. Then I could follow up with our DRM people about what restrictions are imposed by the license.
The text was updated successfully, but these errors were encountered: