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.
docs: add error reference and catalog appendix to user-facing-errors #2644
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
base: master
Are you sure you want to change the base?
docs: add error reference and catalog appendix to user-facing-errors #2644
Changes from all commits
aa09cb3File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor
🧩 Analysis chain
🏁 Script executed:
Repository: ory/docs
Length of output: 146
🏁 Script executed:
Repository: repoEx
Length of output: 2002
🌐 Web query:
Ory Hydra refresh token format opaque JWT exp claim💡 Result:
In Ory Hydra, refresh tokens are always issued as opaque tokens [1][2]. Unlike access tokens, which can be configured to be issued as either opaque tokens or JSON Web Tokens (JWTs), refresh tokens do not support a JWT format [1]. The primary reason for this architectural choice is that refresh tokens must be immediately revocable to maintain security, particularly in scenarios involving token rotation [1][2]. Because they are opaque, they function as random strings that require a database lookup for validation, allowing Ory Hydra to instantly invalidate them by removing them from the data store [1]. Regarding the
exp(expiration) claim: - Because refresh tokens are opaque strings, they do not contain claims likeexpor any other JSON-structured data that could be decoded or inspected client-side [1][2]. - The expiration logic for refresh tokens is handled server-side by Ory Hydra, which tracks their validity period and rotation status [3][4]. - While you can configure the lifespan of refresh tokens (e.g., via the Ory CLI or configuration files) [3], this information is stored and enforced by the server rather than being embedded within the token itself [2]. If you are looking for information about ID tokens or access tokens (when configured as JWTs), those do contain standard JWT claims, includingexp, and are structured as self-contained JSON objects [1][3]. However, refresh tokens remain strictly opaque [1][2].Citations:
Remove the
exp-claim advice for refresh tokens.In Ory Hydra, refresh tokens are strictly opaque strings and never contain embedded claims like
exp. Users cannot inspect the token contents; they must rely on error messages or logs to determine if the token expired, was rotated, or revoked.Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents
Source: MCP tools
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Label these as templates, not literal catalog text.
The appendix says these are literal
Text:values, but the flow-expiry rows normalize the runtime placeholder (X minutes ago). Either keep the exact catalog wording or change the intro so the table is clearly a template/reference, not a verbatim lookup.Also applies to: 125-125, 141-141, 149-149, 161-161, 173-173
🤖 Prompt for AI Agents
Uh oh!
There was an error while loading. Please reload this page.