From 5d7a520bb085ba4742b42756f19b155521d1adec Mon Sep 17 00:00:00 2001 From: Nermeen Mattar Date: Wed, 5 Mar 2025 18:09:26 +0300 Subject: [PATCH 1/2] fix: properly handle forceRefresh errors in App Check token retrieval --- packages/app-check/src/internal-api.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/app-check/src/internal-api.ts b/packages/app-check/src/internal-api.ts index 4eb3953614a..79efd487ca2 100644 --- a/packages/app-check/src/internal-api.ts +++ b/packages/app-check/src/internal-api.ts @@ -192,10 +192,19 @@ export async function getToken( // count this as a failed attempt and use the backoff instead of // retrying repeatedly with no delay, but any 3P listeners will not // be hindered in getting the still-valid token. - interopTokenResult = { - token: token.token, - internalError: error - }; + if (forceRefresh) { + // If forceRefresh is true, return the error alongside the token + // to propagate the failure properly. + interopTokenResult = { + token: token.token, + error + }; + } else { + interopTokenResult = { + token: token.token, + internalError: error + }; + } } else { // No invalid tokens should make it to this step. Memory and cached tokens // are checked. Other tokens are from fresh exchanges. But just in case. From f4e1391db6bc0771130c97ea82eb51d197d472ba Mon Sep 17 00:00:00 2001 From: Nermeen Mattar Date: Wed, 5 Mar 2025 18:12:39 +0300 Subject: [PATCH 2/2] Update changeset --- .changeset/afraid-moose-think.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/afraid-moose-think.md diff --git a/.changeset/afraid-moose-think.md b/.changeset/afraid-moose-think.md new file mode 100644 index 00000000000..9f856804a93 --- /dev/null +++ b/.changeset/afraid-moose-think.md @@ -0,0 +1,5 @@ +--- +'@firebase/app-check': minor +--- + +Fix issue where forceRefresh errors in App Check token retrieval were silently handled, ensuring proper error propagation.