Open abhisagw opened 7 months ago
Generally this happens when the server is returning a value that the client is unable to parse. This may also happen when rate limits on how often redemptions occur on a page, though I don't believe that affects issuances. Missing keys will throw a "DOMException: No keys currently available for PST issuer. Issuer may need to register their key commitments." Though if you've manually provided keys that don't parse correctly or mismatch with what the server is using, that would also appear to show up as a server error.
There can be a delay of up to 4 hours for clients that haven't been used in a while and haven't updated their configurations. You can check that the latest keys are available by going to "chrome://components/" and checking the "Trust Token Key Commitments" field. As of April 26, 2024, the most up to date version is "2024.3.25.1". (if you're manually testing, you can also hit "Check for update" to force a refresh).
For some error cases, you can record a NetLog (https://www.chromium.org/for-testers/providing-network-details/) while performing the operations you're trying to test and then use https://netlog-viewer.appspot.com/#import to load it. Its a bit difficult to use for external developers, but for PST issues, if you load a log and hit "Events" and search for "TRUST_TOKEN_OPERATION", that should show the associated events and may have slightly more information about why certain operations are failing.
What PST issuer registration did you register as?
We registered through this issue.
Ah yeah, forgot we also apply the "redemption" rate limit for the issuer issuance limit. @aykutbulut do you think it would be reasonable to move hitting the issuer limit to a different error code? It looks like a kResourceExhausted error exists but gets mapped to the default rather than a different text string.
There can be edge cases where they don't get propagated (non-Chrome Chromium versions, enterprise environments that block or limit the component fetch, and out of date Chromes with the potential 4 hour delay (though if a computer is on standby or asleep for longer, you can see even more out-of-date Chromes). We don't have metrics for individual components, but the overall metrics for all component downloads is roughly 93% of clients will have up-to-date versions.
As the exact failure conditions can be sensitive (revealing the specific issuers that are in the 2 issuer limit, timing, and differentiating between running out of tokens vs hitting the limits in other ways), we don't have a way to get it from the client remotely via JS. If you have a local client, it might be possible for us to float more information in the DevTools Network tab, and then you could make an extension to grab data from that locally.
OperationError: Error executing Trust Tokens operation
) for a few requests and we are sure its not because of TLD issuance limit or server errors and since key commitment issues will not result in this error, can you help us identify what other scenarios could result in this error? DOMException: Error executing Trust Tokens operation
, I can also see this error message for cases when issuance limit of 500 is breached. Based on this and information in previous responses, seems like this is a generic error message being mapped to multiple failure scenarios. This will potentially hamper debugging since no other information is available from the exception thrown to narrow down on the issuance failure reason. Would request to map these failures in a way that exception thrown carries more information regarding the failure.Yeah, sorry to clarify the comment in the previous response meant that I think all the rate limits return that error code. I think for some of them we can move it to a bespoke error code, though any limits/errors aggregated across multiple issuers may need to be the generic code to avoid it being a side channel.
I believe the 93% number is for Chrome (since those are the browsers we have metrics for).
Created https://issues.chromium.org/issues/339207243 to track this.
For 1, we've added a few more error messages into the console based on whether the error comes from running into ratelimits versus bad server responses. It should be rolling out to Canary today and Dev over the next week.
@dvorak42 what is the status of this change in Chrome release cycle? Is there a way we can track it on our end?
It should be in Chrome Canary/Dev, with it rolling out as part of Chrome 127.
We are observing failures to issue token on Chrome clients with the following error message (we only have access to error strings from JavaScript error logs and not the details from PST tab under issuance call details in network tab):
OperationError: Error executing Trust Tokens operation
Based on above, we have the following queries:
Note: We have successfully registered PST public keys through this Google Chrome repository and haven't rotated them since registration.