[CLOUD_FUNCTIONS]: Cloud Functions not executed due to App Check "invalid" token issue
メンテナーはふだん 7 日以内に返信
@lahirumaramba がすでに取り組んでいます。
2025年7月22日 から。
評価
この issue はまだ評価されていません。
説明
Previous report suggested contacting here: https://github.com/firebase/flutterfire/issues/17540#issuecomment-3096396804
Which plugins are affected?
App Check
Which platforms are affected?
Android
Description
Hi!
I use many cloud function (onCall) in my project and all worked perfectly until the update to Flutter 3.32.4. (I use FlutterFlow)
Context: I don't have my app registered in App Check (and, of course, not enforced) and I don't wan to use App Check at all.
Before: the app validation was "missing" (and the cloud function was executed)
Now: the app validation is "invalid" (and the cloud function is NOT executed)
The log error that I receive is the following:
Failed to validate AppCheck token. FirebaseAppCheckError: Decoding App Check token failed. Make sure you passed the entire string JWT which represents the Firebase App Check token.
at FirebaseAppCheckError.FirebaseError [as constructor] (/workspace/node_modules/firebase-admin/lib/utils/error.js:44:28)
at FirebaseAppCheckError.PrefixedFirebaseError [as constructor] (/workspace/node_modules/firebase-admin/lib/utils/error.js:90:28)
at new FirebaseAppCheckError (/workspace/node_modules/firebase-admin/lib/app-check/app-check-api-client-internal.js:187:28)
at /workspace/node_modules/firebase-admin/lib/app-check/token-verifier.js:82:19
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
errorInfo: {
code: 'app-check/invalid-argument',
message: 'Decoding App Check token failed. Make sure you passed the entire string JWT which represents the Firebase App Check token.'
},
codePrefix: 'app-check'
}
Callable request verification failed: AppCheck token was rejected.
Where is failing?
-Android apps deployed to Google Play (internal test)
-Downloaded .apks
-NOTE: Cloud Functions work in web and in iOS apps deployed to App Store, the app is set as "missing" there (as expected)
Reproducing the issue
When I trigger a onCall cloud function, the console returns this log error: "Callable request verification failed: AppCheck token was rejected" and the function is not executed.
Firebase Core version
3.14.0
Flutter Version
3.32.4
Relevant Log Output
Failed to validate AppCheck token. FirebaseAppCheckError: Decoding App Check token failed. Make sure you passed the entire string JWT which represents the Firebase App Check token.
at FirebaseAppCheckError.FirebaseError [as constructor] (/workspace/node_modules/firebase-admin/lib/utils/error.js:44:28)
at FirebaseAppCheckError.PrefixedFirebaseError [as constructor] (/workspace/node_modules/firebase-admin/lib/utils/error.js:90:28)
at new FirebaseAppCheckError (/workspace/node_modules/firebase-admin/lib/app-check/app-check-api-client-internal.js:187:28)
at /workspace/node_modules/firebase-admin/lib/app-check/token-verifier.js:82:19
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
errorInfo: {
code: 'app-check/invalid-argument',
message: 'Decoding App Check token failed. Make sure you passed the entire string JWT which represents the Firebase App Check token.'
},
codePrefix: 'app-check'
}
Callable request verification failed: AppCheck token was rejected.
Flutter dependencies
The ones of the last FlutterFlow update, see here: https://www.notion.so/flutterflow/FlutterFlow-Migration-Guide-211aa0c0617980f88209f4af67d7b019
Additional context and comments
I followed this steps carefully and didn't solve the problem:
Extract Fingerprints from the New, Failing APK:
Ensure you are using the SHA-1 (and ideally SHA-256) fingerprints from the APK you downloaded after the FlutterFlow update (the one that is currently failing). It's crucial that these match what FlutterFlow is signing your new builds with.
(As discussed before: rename .apk to .zip, extract, go to META-INF, use keytool -printcert -file CERT.RSA).
Register Your Android App in Firebase App Check (Carefully):
Go to your Firebase Console -> App Check -> Apps tab.
If you have any existing Android app entries for this project, consider deleting them and starting fresh to avoid confusion.
Click "Add app" (Android icon).
Package Name: Copy-paste the exact package name from your FlutterFlow project (Settings (gear icon) -> General -> Package Name). It must be perfect.
SHA-1 Certificate Fingerprint: Paste the SHA-1 you extracted from the new, failing APK.
SHA-256 Certificate Fingerprint (Optional but Recommended): Also add the SHA-256 from the same APK.
Choose Provider: For Android, select Play Integrity API. This is the modern, robust choice. Follow any instructions it gives you regarding linking to Google Play Console. If you don't plan to use Google Play Console, you might temporarily use SafetyNet Attestation API instead, but Play Integrity is the future.
Do NOT click "Enforce" after registering. Just register the app.
Wait for Propagation:
After adding the app and its fingerprints, wait at least 15-30 minutes for the changes to propagate across Firebase's systems.
Re-download APK from FlutterFlow:
Once you've waited, go back to FlutterFlow.
Perform a Clear Cache browser & Download APK from the menu. This ensures FlutterFlow builds your app with the updated configuration in mind and you get a fresh APK.
- 主要言語
- TypeScript
- スター
- 1.8k
- フォーク
- 420
- 平均マージ
- 5日 6時間
- マージ済み PR(30日)
- 11
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
firebase/firebase-admin-node のほかの issue
-
Password policy violation is reported as `auth/internal-error` instead of a specific error codeオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
firebase/firebase-admin-node#3265 ·
メンテナーはふだん 7 日以内に返信
-
getToken() replays a failed token refresh to later callers while a valid token is cached対応中かも @GUMBOKIM が 51 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
firebase/firebase-admin-node#3234 ·
メンテナーはふだん 7 日以内に返信
-
[email protected] stable dependency tree fails npm audit via Storage uuid and Firestore google-gax対応中かも @lahirumaramba が 27 日前に担当しました。 オープン
firebase/firebase-admin-node#3221 · コメント 3 件 · 担当者 1 名 ·
メンテナーはふだん 7 日以内に返信
-
Misleading error message for THIRD_PARTY_AUTH_ERROR: raw "OAuth 2 access token" text surfaced instead of the APNs-specific message対応中かも @milcho0604 が 53 日前に担当しました。 オープンapi: messaging
難易度 3/5 1〜2日 初心者へのやさしさ 70/100
firebase/firebase-admin-node#3215 ·
メンテナーはふだん 7 日以内に返信
-
api: messaging
難易度 5/5 1週間以上 初心者へのやさしさ 28/100
firebase/firebase-admin-node#3214 ·
メンテナーはふだん 7 日以内に返信
firebase/firebase-admin-node の issue をすべて見る
似ている issue
-
area/dashboard kind/bug QA/dev-automation
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
rancher/dashboard#19379 · コメント 2 件 ·
メンテナーはふだん 5 日以内に返信
-
perf(core): getComments() runs the approved count and the comment list as two sequential queriesオープンarea/core bot:bug bot:working
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
emdash-cms/emdash#3905 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
lingdojo/kana-dojo#31728 · コメント 1 件 · リアクション 5 件 ·
メンテナーはふだん 1 日以内に返信
-
selective-claw: freshTailTurns=0 keeps ALL turns verbatim and summarizes none (slice(-0) === slice(0))対応中かも @zjncs が今日担当しました。 オープンcomponent:tokenless
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
agentic-os-org/ANOLISA#6112 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
rjsf-team/react-jsonschema-form#5439 ·
メンテナーはふだん 1 日以内に返信