@clerk/testing retries FAPI token refresh after Playwright page/context closure
維護者通常 1 天內回覆
評估
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 新手友好度
- 65/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 活躍
- 技術堆疊
- nodejs, playwright, typescript
- 領域
- testing
研究方向
Start by locating the @clerk/testing FAPI retry and route-handler implementation, then reproduce the case with a Playwright page or context closing during a background token refresh. Done means page/context-closure errors are not retried or warned, while genuine FAPI and network failures remain visible.
由索引模型根據 Issue 內容生成。
描述
@clerk/testing retries a Convex-template token refresh after its Playwright page/context has closed, then logs a FAPI failure between passing tests.
Observed with @clerk/testing 2.2.36, Playwright 1.63.0, Node 24.19.0, macOS arm64. A signed-in test opens a second page with browser.newPage(), signs in using clerk.signIn({ page, signInParams: { strategy: "email_code", identifier } }), performs its authenticated interaction successfully, and closes that page in finally. If a Clerk background token refresh is still routed at that point, the handler retries four times and prints:
[Clerk Testing] FAPI request failed after 4 attempts: <redacted FAPI Convex-token URL> (Error: route.fetch: Target page, context or browser has been closed)
This occurred after two passing cases in one eight-case run; the run exited 0 with all eight cases passing. It is not an observed authentication failure or a 429. The endpoint/query are redacted because they include session/token values.
Our project already has a local patch that returns early when String(error).includes("Test ended"); it does not cover this different Playwright closure error. No other route-handler changes are applied. We have not retested a newer Clerk Testing release.
Expected: do not retry or warn for a request aborted solely because its owning page/context has closed. Keep genuine FAPI/network failures visible. Current workaround: distinguish these post-close diagnostics from the test result; no assertion or authentication bypass was added.
- 主要語言
- TypeScript
- 星號
- 1.8k
- 分支
- 483
- 平均合併
- 1 天 23 小時
- 30 天內合併 PR
- 325
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
clerk/javascript 的其他 Issue
-
ClerkAPIError drops meta.lockout_expires_in_seconds from user_locked errors可能已有人在做 @umeraamir69 於 3 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 78/100
clerk/javascript#10026 · 2 則留言 ·
維護者通常 1 天內回覆
-
@clerk/nextjs: onBeforeSetActive never settles when invalidateCacheAction rejects (e.g. after a redeploy), so setActive and signOut hang forever可能已有人在做 @RaphaelFakhri 於 19 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 78/100
clerk/javascript#9987 · 1 則留言 ·
維護者通常 1 天內回覆
-
needs-triage
難度 4/5 3-5 天 新手友好度 44/100
clerk/javascript#10413 · 1 則留言 ·
維護者通常 1 天內回覆
-
Dev instances: clerk-js rewrites __clerk_db_jwt non-atomically, concurrent requests fail with dev-browser-missing可能已有人在做 @umeraamir69 於 2 天前認領。 未關閉
難度 4/5 3-5 天 新手友好度 35/100
clerk/javascript#10411 ·
維護者通常 1 天內回覆
-
needs-triage
難度 4/5 3-5 天 新手友好度 55/100
clerk/javascript#10356 ·
維護者通常 1 天內回覆
相似的 Issue
-
type: bug
難度 2/5 1-3 小時 新手友好度 79/100
維護者通常 1 天內回覆
-
0️⃣ phase/new
難度 2/5 1-3 小時 新手友好度 82/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
-
難度 1/5 1 小時以內 新手友好度 70/100
microsoft/playwright#43640 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 70/100