[PR #8103] [MERGED] fix: use invalid_grant instead of invalid_request for refresh token errors #7749

Closed
opened 2026-03-13 13:48:03 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/8103
Author: @luchersou
Created: 2/23/2026
Status: Merged
Merged: 2/23/2026
Merged by: @himself65

Base: canaryHead: fix/invalid-grant-error-code


📝 Commits (1)

  • 5ab6516 fix: use invalid_grant instead of invalid_request for refresh token errors

📊 Changes

1 file changed (+3 additions, -3 deletions)

View changed files

📝 packages/oauth-provider/src/token.ts (+3 -3)

📄 Description

Fixes #8099

Problem

When an invalid refresh token is provided, the OAuth token endpoint was
returning invalid_request instead of invalid_grant, which prevented
clients from triggering a clean reauthentication flow.

Changes

Updated three cases in packages/oauth-provider/src/token.ts to return
invalid_grant as per RFC 6749:

  • Token not found in database (session not found)
  • Token expired
  • Token revoked

All three cases represent an invalid grant and should trigger
reauthentication on the client side, as specified in the OAuth 2.0 spec.


Summary by cubic

Return invalid_grant for refresh token errors to align with RFC 6749 and trigger clean client reauthentication.

  • Bug Fixes
    • Return invalid_grant when session not found.
    • Return invalid_grant when refresh token expired.
    • Return invalid_grant when refresh token revoked.

Written for commit 5ab651664d. Summary will update on new commits.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/better-auth/better-auth/pull/8103 **Author:** [@luchersou](https://github.com/luchersou) **Created:** 2/23/2026 **Status:** ✅ Merged **Merged:** 2/23/2026 **Merged by:** [@himself65](https://github.com/himself65) **Base:** `canary` ← **Head:** `fix/invalid-grant-error-code` --- ### 📝 Commits (1) - [`5ab6516`](https://github.com/better-auth/better-auth/commit/5ab651664de954d3d9b049e042cb46cf7fcbace6) fix: use invalid_grant instead of invalid_request for refresh token errors ### 📊 Changes **1 file changed** (+3 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `packages/oauth-provider/src/token.ts` (+3 -3) </details> ### 📄 Description Fixes #8099 ## Problem When an invalid refresh token is provided, the OAuth token endpoint was returning `invalid_request` instead of `invalid_grant`, which prevented clients from triggering a clean reauthentication flow. ## Changes Updated three cases in `packages/oauth-provider/src/token.ts` to return `invalid_grant` as per RFC 6749: - Token not found in database (`session not found`) - Token expired - Token revoked All three cases represent an invalid grant and should trigger reauthentication on the client side, as specified in the OAuth 2.0 spec. <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Return invalid_grant for refresh token errors to align with RFC 6749 and trigger clean client reauthentication. - **Bug Fixes** - Return invalid_grant when session not found. - Return invalid_grant when refresh token expired. - Return invalid_grant when refresh token revoked. <sup>Written for commit 5ab651664de954d3d9b049e042cb46cf7fcbace6. Summary will update on new commits.</sup> <!-- End of auto-generated description by cubic. --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-03-13 13:48:03 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#7749