[debug] [2026-04-19T16:48:31.474Z] ---------------------------------------------------------------------- [debug] [2026-04-19T16:48:31.476Z] Command: /usr/local/bin/firebase /home/leon/.cache/firebase/tools/lib/node_modules/firebase-tools/lib/bin/firebase emulators:start --only functions [debug] [2026-04-19T16:48:31.476Z] CLI Version: 15.15.0 [debug] [2026-04-19T16:48:31.476Z] Platform: linux [debug] [2026-04-19T16:48:31.476Z] Node Version: v20.18.2 [debug] [2026-04-19T16:48:31.476Z] Time: Sun Apr 19 2026 18:48:31 GMT+0200 (GMT+02:00) [debug] [2026-04-19T16:48:31.476Z] ---------------------------------------------------------------------- [debug] [debug] [2026-04-19T16:48:31.907Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] [debug] [2026-04-19T16:48:31.907Z] > authorizing via signed-in user (leon.morival@gmail.com) [info] i emulators: Starting emulators: functions {"metadata":{"emulator":{"name":"hub"},"message":"Starting emulators: functions"}} [debug] [2026-04-19T16:48:31.917Z] [logging] Logging Emulator only supports listening on one address (127.0.0.1). Not listening on ::1 [debug] [2026-04-19T16:48:31.917Z] assigned listening specs for emulators {"user":{"ui":[{"address":"0.0.0.0","family":"IPv4","port":4000}],"hub":[{"address":"127.0.0.1","family":"IPv4","port":4400},{"address":"::1","family":"IPv6","port":4400}],"logging":[{"address":"127.0.0.1","family":"IPv4","port":4500}]},"metadata":{"message":"assigned listening specs for emulators"}} [debug] [2026-04-19T16:48:31.919Z] Write emulator hub locator at /tmp/hub-expo-starter-9daef.json [debug] [2026-04-19T16:48:31.923Z] [eventarc] Eventarc Emulator only supports listening on one address (127.0.0.1). Not listening on ::1 [debug] [2026-04-19T16:48:31.923Z] [tasks] Cloud Tasks Emulator only supports listening on one address (127.0.0.1). Not listening on ::1 [debug] [2026-04-19T16:48:31.923Z] late-assigned ports for functions and eventarc emulators {"user":{"ui":[{"address":"0.0.0.0","family":"IPv4","port":4000}],"hub":[{"address":"127.0.0.1","family":"IPv4","port":4400},{"address":"::1","family":"IPv6","port":4400}],"logging":[{"address":"127.0.0.1","family":"IPv4","port":4500}],"functions":[{"address":"0.0.0.0","family":"IPv4","port":5001}],"eventarc":[{"address":"127.0.0.1","family":"IPv4","port":9299}],"tasks":[{"address":"127.0.0.1","family":"IPv4","port":9499}]},"metadata":{"message":"late-assigned ports for functions and eventarc emulators"}} [warn] ⚠ functions: The following emulators are not running, calls to these services from the Functions emulator will affect production: apphosting, auth, firestore, database, hosting, pubsub, storage, dataconnect {"metadata":{"emulator":{"name":"functions"},"message":"The following emulators are not running, calls to these services from the Functions emulator will affect production: \u001b[1mapphosting, auth, firestore, database, hosting, pubsub, storage, dataconnect\u001b[22m"}} [debug] [2026-04-19T16:48:31.939Z] defaultcredentials: writing to file /home/leon/.config/firebase/leon_morival_gmail.com_application_default_credentials.json [debug] [2026-04-19T16:48:31.940Z] Setting GAC to /home/leon/.config/firebase/leon_morival_gmail.com_application_default_credentials.json {"metadata":{"emulator":{"name":"functions"},"message":"Setting GAC to /home/leon/.config/firebase/leon_morival_gmail.com_application_default_credentials.json"}} [debug] [2026-04-19T16:48:31.940Z] Checked if tokens are valid: true, expires at: 1776620760607 [debug] [2026-04-19T16:48:31.940Z] Checked if tokens are valid: true, expires at: 1776620760607 [debug] [2026-04-19T16:48:31.941Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/expo-starter-9daef/adminSdkConfig [none] [debug] [2026-04-19T16:48:32.358Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/expo-starter-9daef/adminSdkConfig 200 [debug] [2026-04-19T16:48:32.358Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/expo-starter-9daef/adminSdkConfig {"projectId":"expo-starter-9daef","storageBucket":"expo-starter-9daef.firebasestorage.app"} [info] i functions: Watching "/home/leon/Workspace/perso/starter/expo-starter/functions" for Cloud Functions... {"metadata":{"emulator":{"name":"functions"},"message":"Watching \"/home/leon/Workspace/perso/starter/expo-starter/functions\" for Cloud Functions..."}} [debug] [2026-04-19T16:48:32.373Z] Validating nodejs source [debug] [2026-04-19T16:48:32.726Z] > [functions] package.json contents: { "name": "functions", "scripts": { "lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ext .js,.ts src", "build": "tsc", "build:watch": "tsc --watch", "serve": "npm run build && firebase emulators:start --only functions", "shell": "npm run build && firebase functions:shell", "start": "npm run shell", "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, "engines": { "node": "24" }, "main": "lib/index.js", "dependencies": { "firebase-admin": "^13.6.0", "firebase-functions": "^7.0.0" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^5.12.0", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", "eslint-config-google": "^0.14.0", "eslint-plugin-import": "^2.25.4", "firebase-functions-test": "^3.4.1", "typescript": "^6.0.0" }, "private": true } [debug] [2026-04-19T16:48:32.726Z] Building nodejs source [debug] [2026-04-19T16:48:32.727Z] Failed to find version of module node: reached end of search path /home/leon/Workspace/perso/starter/expo-starter/functions/node_modules [warn] ⚠ functions: You've requested "node" version "24", but the standalone Firebase CLI comes with bundled Node "20". [info] ✔ functions: To use a different Node.js version, consider removing the standalone Firebase CLI and switching to "firebase-tools" on npm. [debug] [2026-04-19T16:48:32.728Z] Could not find functions.yaml. Must use http discovery [debug] [2026-04-19T16:48:32.730Z] Found firebase-functions binary at '/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/.bin/firebase-functions' [info] Serving at port 8679 [debug] [2026-04-19T16:48:33.073Z] Got response from /__/functions.yaml {"endpoints":{"deleteUserAuthOnUserDocumentDeleted":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.deleted","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"users/{uid}"},"retry":false},"entryPoint":"deleteUserAuthOnUserDocumentDeleted"},"sendTestPushNotification":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"callableTrigger":{},"entryPoint":"sendTestPushNotification"}},"specVersion":"v1alpha1","requiredAPIs":[],"extensions":{}} [debug] [2026-04-19T16:48:34.822Z] [work-queue] {"queuedWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:48:34.822Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:48:34.822Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:48:34.822Z"],"workRunningCount":1} [debug] [2026-04-19T16:48:34.823Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} [info] ✔ functions: Loaded functions definitions from source: deleteUserAuthOnUserDocumentDeleted, sendTestPushNotification. {"metadata":{"emulator":{"name":"functions"},"message":"Loaded functions definitions from source: deleteUserAuthOnUserDocumentDeleted, sendTestPushNotification."}} [info] i functions[us-central1-deleteUserAuthOnUserDocumentDeleted]: function ignored because the firestore emulator does not exist or is not running. {"metadata":{"emulator":{"name":"functions"},"message":"function ignored because the firestore emulator does not exist or is not running."}} [info] ✔ functions[us-central1-sendTestPushNotification]: http function initialized (http://127.0.0.1:5001/expo-starter-9daef/us-central1/sendTestPushNotification). {"metadata":{"emulator":{"name":"functions"},"message":"\u001b[1mhttp\u001b[22m function initialized (http://127.0.0.1:5001/expo-starter-9daef/us-central1/sendTestPushNotification)."}} [debug] [2026-04-19T16:48:37.112Z] Could not find VSCode notification endpoint: FetchError: request to http://localhost:40001/vscode/notify failed, reason: connect ECONNREFUSED 127.0.0.1:40001. If you are not running the Firebase SQL Connect VSCode extension, this is expected and not an issue. [info] ┌─────────────────────────────────────────────────────────────┐ │ ✔ All emulators ready! It is now safe to connect your app. │ │ i View Emulator UI at http://127.0.0.1:4000/ │ └─────────────────────────────────────────────────────────────┘ ┌───────────┬──────────────┬─────────────────────────────────┐ │ Emulator │ Host:Port │ View in Emulator UI │ ├───────────┼──────────────┼─────────────────────────────────┤ │ Functions │ 0.0.0.0:5001 │ http://127.0.0.1:4000/functions │ └───────────┴──────────────┴─────────────────────────────────┘ Emulator Hub host: 127.0.0.1 port: 4400 Other reserved ports: 4500 Issues? Report them at https://github.com/firebase/firebase-tools/issues and attach the *-debug.log files. [debug] [2026-04-19T16:48:40.336Z] [work-queue] {"queuedWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:48:40.336Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:48:40.337Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:48:40.336Z"],"workRunningCount":1} [debug] [2026-04-19T16:48:40.337Z] Accepted request POST /expo-starter-9daef/us-central1/sendTestPushNotification --> us-central1-sendTestPushNotification [debug] [2026-04-19T16:48:40.338Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} [debug] [2026-04-19T16:48:40.339Z] [functions] Got req.url=/expo-starter-9daef/us-central1/sendTestPushNotification, mapping to path=/ {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/expo-starter-9daef/us-central1/sendTestPushNotification, mapping to path=/"}} [debug] [2026-04-19T16:48:40.344Z] [worker-pool] addWorker(us-central1-sendTestPushNotification) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] addWorker(us-central1-sendTestPushNotification)"}} [debug] [2026-04-19T16:48:40.345Z] [worker-pool] Adding worker with key us-central1-sendTestPushNotification, total=1 {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] Adding worker with key us-central1-sendTestPushNotification, total=1"}} [debug] [2026-04-19T16:48:40.707Z] [runtime-status] [63867] Resolved module firebase-admin {"declared":true,"installed":true,"version":"13.8.0","resolution":"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-admin/lib/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"13.8.0\",\"resolution\":\"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-admin/lib/index.js\"}"}} [debug] [2026-04-19T16:48:40.707Z] [runtime-status] [63867] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.5","resolution":"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-functions/lib/v2/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.5\",\"resolution\":\"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-functions/lib/v2/index.js\"}"}} [debug] [2026-04-19T16:48:40.707Z] [runtime-status] [63867] Outgoing network have been stubbed. [{"name":"http","status":"mocked"},{"name":"http","status":"mocked"},{"name":"https","status":"mocked"},{"name":"https","status":"mocked"},{"name":"net","status":"mocked"}] {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Outgoing network have been stubbed. [{\"name\":\"http\",\"status\":\"mocked\"},{\"name\":\"http\",\"status\":\"mocked\"},{\"name\":\"https\",\"status\":\"mocked\"},{\"name\":\"https\",\"status\":\"mocked\"},{\"name\":\"net\",\"status\":\"mocked\"}]"}} [debug] [2026-04-19T16:48:40.707Z] [runtime-status] [63867] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.5","resolution":"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-functions/lib/v2/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.5\",\"resolution\":\"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-functions/lib/v2/index.js\"}"}} [debug] [2026-04-19T16:48:40.707Z] [runtime-status] [63867] Detected firebase-functions v7+, skipping legacy stubs. {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Detected firebase-functions v7+, skipping legacy stubs."}} [debug] [2026-04-19T16:48:40.707Z] [runtime-status] [63867] Resolved module firebase-admin {"declared":true,"installed":true,"version":"13.8.0","resolution":"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-admin/lib/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"13.8.0\",\"resolution\":\"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-admin/lib/index.js\"}"}} [debug] [2026-04-19T16:48:40.727Z] [runtime-status] [63867] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.5","resolution":"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-functions/lib/v2/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.5\",\"resolution\":\"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-functions/lib/v2/index.js\"}"}} [debug] [2026-04-19T16:48:40.798Z] [runtime-status] [63867] firebase-admin has been stubbed. {"adminResolution":{"declared":true,"installed":true,"version":"13.8.0","resolution":"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-admin/lib/index.js"}} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] firebase-admin has been stubbed. {\"adminResolution\":{\"declared\":true,\"installed\":true,\"version\":\"13.8.0\",\"resolution\":\"/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/firebase-admin/lib/index.js\"}}"}} [debug] [2026-04-19T16:48:40.803Z] [runtime-status] [63867] Functions runtime initialized. {"cwd":"/home/leon/Workspace/perso/starter/expo-starter/functions","node_version":"20.18.2"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Functions runtime initialized. {\"cwd\":\"/home/leon/Workspace/perso/starter/expo-starter/functions\",\"node_version\":\"20.18.2\"}"}} [debug] [2026-04-19T16:48:40.803Z] [runtime-status] [63867] Listening to port: /tmp/fire_emu_5ad7eed774b9d705.sock {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[runtime-status] [63867] Listening to port: /tmp/fire_emu_5ad7eed774b9d705.sock"}} [debug] [2026-04-19T16:48:40.855Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE"}} [debug] [2026-04-19T16:48:40.855Z] [worker-pool] submitRequest(triggerId=us-central1-sendTestPushNotification) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=us-central1-sendTestPushNotification)"}} [info] i functions: Beginning execution of "us-central1-sendTestPushNotification" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Beginning execution of \"us-central1-sendTestPushNotification\""}} [debug] [2026-04-19T16:48:40.856Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: BUSY"}} [info] > {"verifications":{"app":"MISSING","auth":"VALID"},"logging.googleapis.com/labels":{"firebase-log-type":"callable-request-verification"},"severity":"DEBUG","message":"Callable request verification passed"} {"user":{"verifications":{"app":"MISSING","auth":"VALID"},"logging.googleapis.com/labels":{"firebase-log-type":"callable-request-verification"},"severity":"DEBUG","message":"Callable request verification passed"},"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"\u001b[90m> \u001b[39m {\"verifications\":{\"app\":\"MISSING\",\"auth\":\"VALID\"},\"logging.googleapis.com/labels\":{\"firebase-log-type\":\"callable-request-verification\"},\"severity\":\"DEBUG\",\"message\":\"Callable request verification passed\"}"}} [warn] ⚠ Google API requested! - URL: "https://oauth2.googleapis.com/token" - Be careful, this may be a production service. {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Google API requested!\n - URL: \"https://oauth2.googleapis.com/token\"\n - Be careful, this may be a production service."}} [info] > {"uid":"O8lgsPxjejS7WZYVN1qa8wAZfiA2","response":[{"status":"error","message":"\"fn_xv7aZRAGC92nuZbTRYM:APA91bE...wLvTQTf_J3VmP7wcfgFOmXiYgYo\" is not a valid Expo push token","details":{"error":"DeviceNotRegistered","expoPushToken":"fn_xv7aZRAGC92nuZbTRYM:APA91bE...wLvTQTf_J3VmP7wcfgFOmXiYgYo"}},{"status":"error","message":"Unable to retrieve the FCM server key for the recipient's app. Make sure you have provided a server key as directed by the Expo FCM documentation.","details":{"error":"InvalidCredentials","fault":"developer"}}],"severity":"INFO","message":"Test push notification sent."} {"user":{"uid":"O8lgsPxjejS7WZYVN1qa8wAZfiA2","response":[{"status":"error","message":"\"fn_xv7aZRAGC92nuZbTRYM:APA91bE...wLvTQTf_J3VmP7wcfgFOmXiYgYo\" is not a valid Expo push token","details":{"error":"DeviceNotRegistered","expoPushToken":"fn_xv7aZRAGC92nuZbTRYM:APA91bE...wLvTQTf_J3VmP7wcfgFOmXiYgYo"}},{"status":"error","message":"Unable to retrieve the FCM server key for the recipient's app. Make sure you have provided a server key as directed by the Expo FCM documentation.","details":{"error":"InvalidCredentials","fault":"developer"}}],"severity":"INFO","message":"Test push notification sent."},"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"\u001b[90m> \u001b[39m {\"uid\":\"O8lgsPxjejS7WZYVN1qa8wAZfiA2\",\"response\":[{\"status\":\"error\",\"message\":\"\\\"fn_xv7aZRAGC92nuZbTRYM:APA91bE...wLvTQTf_J3VmP7wcfgFOmXiYgYo\\\" is not a valid Expo push token\",\"details\":{\"error\":\"DeviceNotRegistered\",\"expoPushToken\":\"fn_xv7aZRAGC92nuZbTRYM:APA91bE...wLvTQTf_J3VmP7wcfgFOmXiYgYo\"}},{\"status\":\"error\",\"message\":\"Unable to retrieve the FCM server key for the recipient's app. Make sure you have provided a server key as directed by the Expo FCM documentation.\",\"details\":{\"error\":\"InvalidCredentials\",\"fault\":\"developer\"}}],\"severity\":\"INFO\",\"message\":\"Test push notification sent.\"}"}} [debug] [2026-04-19T16:48:41.877Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=pause"}} [info] i functions: Finished "us-central1-sendTestPushNotification" in 1021.358853ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finished \"us-central1-sendTestPushNotification\" in 1021.358853ms"}} [debug] [2026-04-19T16:48:41.878Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE"}} [debug] [2026-04-19T16:48:41.878Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=finish"}} [debug] [2026-04-19T16:48:41.878Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=close"}} [debug] [2026-04-19T16:48:41.878Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:50:23.257Z] [work-queue] {"queuedWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:50:23.257Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:50:23.257Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:50:23.257Z"],"workRunningCount":1} [debug] [2026-04-19T16:50:23.257Z] Accepted request POST /expo-starter-9daef/us-central1/sendTestPushNotification --> us-central1-sendTestPushNotification [debug] [2026-04-19T16:50:23.258Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} [debug] [2026-04-19T16:50:23.259Z] [functions] Got req.url=/expo-starter-9daef/us-central1/sendTestPushNotification, mapping to path=/ {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/expo-starter-9daef/us-central1/sendTestPushNotification, mapping to path=/"}} [debug] [2026-04-19T16:50:23.259Z] [worker-pool] submitRequest(triggerId=us-central1-sendTestPushNotification) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=us-central1-sendTestPushNotification)"}} [info] i functions: Beginning execution of "us-central1-sendTestPushNotification" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Beginning execution of \"us-central1-sendTestPushNotification\""}} [debug] [2026-04-19T16:50:23.260Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: BUSY"}} [info] > {"verifications":{"app":"MISSING","auth":"VALID"},"logging.googleapis.com/labels":{"firebase-log-type":"callable-request-verification"},"severity":"DEBUG","message":"Callable request verification passed"} {"user":{"verifications":{"app":"MISSING","auth":"VALID"},"logging.googleapis.com/labels":{"firebase-log-type":"callable-request-verification"},"severity":"DEBUG","message":"Callable request verification passed"},"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"\u001b[90m> \u001b[39m {\"verifications\":{\"app\":\"MISSING\",\"auth\":\"VALID\"},\"logging.googleapis.com/labels\":{\"firebase-log-type\":\"callable-request-verification\"},\"severity\":\"DEBUG\",\"message\":\"Callable request verification passed\"}"}} [info] > {"uid":"O8lgsPxjejS7WZYVN1qa8wAZfiA2","response":[{"status":"error","message":"Unable to retrieve the FCM server key for the recipient's app. Make sure you have provided a server key as directed by the Expo FCM documentation.","details":{"error":"InvalidCredentials","fault":"developer"}}],"severity":"INFO","message":"Test push notification sent."} {"user":{"uid":"O8lgsPxjejS7WZYVN1qa8wAZfiA2","response":[{"status":"error","message":"Unable to retrieve the FCM server key for the recipient's app. Make sure you have provided a server key as directed by the Expo FCM documentation.","details":{"error":"InvalidCredentials","fault":"developer"}}],"severity":"INFO","message":"Test push notification sent."},"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"\u001b[90m> \u001b[39m {\"uid\":\"O8lgsPxjejS7WZYVN1qa8wAZfiA2\",\"response\":[{\"status\":\"error\",\"message\":\"Unable to retrieve the FCM server key for the recipient's app. Make sure you have provided a server key as directed by the Expo FCM documentation.\",\"details\":{\"error\":\"InvalidCredentials\",\"fault\":\"developer\"}}],\"severity\":\"INFO\",\"message\":\"Test push notification sent.\"}"}} [debug] [2026-04-19T16:50:23.660Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=pause"}} [info] i functions: Finished "us-central1-sendTestPushNotification" in 400.343794ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finished \"us-central1-sendTestPushNotification\" in 400.343794ms"}} [debug] [2026-04-19T16:50:23.660Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE"}} [debug] [2026-04-19T16:50:23.660Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=finish"}} [debug] [2026-04-19T16:50:23.661Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=close"}} [debug] [2026-04-19T16:50:23.661Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:54:50.209Z] [work-queue] {"queuedWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:54:50.209Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:54:50.209Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:54:50.209Z"],"workRunningCount":1} [debug] [2026-04-19T16:54:50.210Z] Accepted request POST /expo-starter-9daef/us-central1/sendTestPushNotification --> us-central1-sendTestPushNotification [debug] [2026-04-19T16:54:50.210Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} [debug] [2026-04-19T16:54:50.211Z] [functions] Got req.url=/expo-starter-9daef/us-central1/sendTestPushNotification, mapping to path=/ {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/expo-starter-9daef/us-central1/sendTestPushNotification, mapping to path=/"}} [debug] [2026-04-19T16:54:50.211Z] [worker-pool] submitRequest(triggerId=us-central1-sendTestPushNotification) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=us-central1-sendTestPushNotification)"}} [info] i functions: Beginning execution of "us-central1-sendTestPushNotification" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Beginning execution of \"us-central1-sendTestPushNotification\""}} [debug] [2026-04-19T16:54:50.211Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: BUSY"}} [info] > {"verifications":{"app":"MISSING","auth":"VALID"},"logging.googleapis.com/labels":{"firebase-log-type":"callable-request-verification"},"severity":"DEBUG","message":"Callable request verification passed"} {"user":{"verifications":{"app":"MISSING","auth":"VALID"},"logging.googleapis.com/labels":{"firebase-log-type":"callable-request-verification"},"severity":"DEBUG","message":"Callable request verification passed"},"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"\u001b[90m> \u001b[39m {\"verifications\":{\"app\":\"MISSING\",\"auth\":\"VALID\"},\"logging.googleapis.com/labels\":{\"firebase-log-type\":\"callable-request-verification\"},\"severity\":\"DEBUG\",\"message\":\"Callable request verification passed\"}"}} [info] > {"uid":"O8lgsPxjejS7WZYVN1qa8wAZfiA2","response":[{"status":"ok","id":"019da6aa-95b7-71d2-94fb-4eba9aa8650e"}],"severity":"INFO","message":"Test push notification sent."} {"user":{"uid":"O8lgsPxjejS7WZYVN1qa8wAZfiA2","response":[{"status":"ok","id":"019da6aa-95b7-71d2-94fb-4eba9aa8650e"}],"severity":"INFO","message":"Test push notification sent."},"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"\u001b[90m> \u001b[39m {\"uid\":\"O8lgsPxjejS7WZYVN1qa8wAZfiA2\",\"response\":[{\"status\":\"ok\",\"id\":\"019da6aa-95b7-71d2-94fb-4eba9aa8650e\"}],\"severity\":\"INFO\",\"message\":\"Test push notification sent.\"}"}} [debug] [2026-04-19T16:54:50.715Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=pause"}} [info] i functions: Finished "us-central1-sendTestPushNotification" in 503.61932ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finished \"us-central1-sendTestPushNotification\" in 503.61932ms"}} [debug] [2026-04-19T16:54:50.715Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE"}} [debug] [2026-04-19T16:54:50.715Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=finish"}} [debug] [2026-04-19T16:54:50.715Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=close"}} [debug] [2026-04-19T16:54:50.715Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:55:02.329Z] [work-queue] {"queuedWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:55:02.329Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:55:02.329Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/expo-starter-9daef/us-central1/sendTestPushNotification-2026-04-19T16:55:02.329Z"],"workRunningCount":1} [debug] [2026-04-19T16:55:02.330Z] Accepted request POST /expo-starter-9daef/us-central1/sendTestPushNotification --> us-central1-sendTestPushNotification [debug] [2026-04-19T16:55:02.330Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} [debug] [2026-04-19T16:55:02.330Z] [functions] Got req.url=/expo-starter-9daef/us-central1/sendTestPushNotification, mapping to path=/ {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/expo-starter-9daef/us-central1/sendTestPushNotification, mapping to path=/"}} [debug] [2026-04-19T16:55:02.331Z] [worker-pool] submitRequest(triggerId=us-central1-sendTestPushNotification) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=us-central1-sendTestPushNotification)"}} [info] i functions: Beginning execution of "us-central1-sendTestPushNotification" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Beginning execution of \"us-central1-sendTestPushNotification\""}} [debug] [2026-04-19T16:55:02.331Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: BUSY"}} [info] > {"verifications":{"app":"MISSING","auth":"VALID"},"logging.googleapis.com/labels":{"firebase-log-type":"callable-request-verification"},"severity":"DEBUG","message":"Callable request verification passed"} {"user":{"verifications":{"app":"MISSING","auth":"VALID"},"logging.googleapis.com/labels":{"firebase-log-type":"callable-request-verification"},"severity":"DEBUG","message":"Callable request verification passed"},"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"\u001b[90m> \u001b[39m {\"verifications\":{\"app\":\"MISSING\",\"auth\":\"VALID\"},\"logging.googleapis.com/labels\":{\"firebase-log-type\":\"callable-request-verification\"},\"severity\":\"DEBUG\",\"message\":\"Callable request verification passed\"}"}} [info] > {"uid":"O8lgsPxjejS7WZYVN1qa8wAZfiA2","response":[{"status":"ok","id":"019da6aa-c4a6-75d0-8e77-b9ff5b055321"}],"severity":"INFO","message":"Test push notification sent."} {"user":{"uid":"O8lgsPxjejS7WZYVN1qa8wAZfiA2","response":[{"status":"ok","id":"019da6aa-c4a6-75d0-8e77-b9ff5b055321"}],"severity":"INFO","message":"Test push notification sent."},"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"\u001b[90m> \u001b[39m {\"uid\":\"O8lgsPxjejS7WZYVN1qa8wAZfiA2\",\"response\":[{\"status\":\"ok\",\"id\":\"019da6aa-c4a6-75d0-8e77-b9ff5b055321\"}],\"severity\":\"INFO\",\"message\":\"Test push notification sent.\"}"}} [debug] [2026-04-19T16:55:02.693Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=pause"}} [info] i functions: Finished "us-central1-sendTestPushNotification" in 361.626998ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finished \"us-central1-sendTestPushNotification\" in 361.626998ms"}} [debug] [2026-04-19T16:55:02.693Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: IDLE"}} [debug] [2026-04-19T16:55:02.693Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=finish"}} [debug] [2026-04-19T16:55:02.694Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"Finishing up request with event=close"}} [debug] [2026-04-19T16:55:02.694Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} [debug] [2026-04-19T16:57:32.477Z] File /home/leon/Workspace/perso/starter/expo-starter/functions/src/notifications.ts changed, reloading triggers {"metadata":{"emulator":{"name":"functions"},"message":"File /home/leon/Workspace/perso/starter/expo-starter/functions/src/notifications.ts changed, reloading triggers"}} [debug] [2026-04-19T16:57:33.478Z] Validating nodejs source [debug] [2026-04-19T16:57:33.929Z] > [functions] package.json contents: { "name": "functions", "scripts": { "lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ext .js,.ts src", "build": "tsc", "build:watch": "tsc --watch", "serve": "npm run build && firebase emulators:start --only functions", "shell": "npm run build && firebase functions:shell", "start": "npm run shell", "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, "engines": { "node": "24" }, "main": "lib/index.js", "dependencies": { "firebase-admin": "^13.6.0", "firebase-functions": "^7.0.0" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^5.12.0", "@typescript-eslint/parser": "^5.12.0", "eslint": "^8.9.0", "eslint-config-google": "^0.14.0", "eslint-plugin-import": "^2.25.4", "firebase-functions-test": "^3.4.1", "typescript": "^6.0.0" }, "private": true } [debug] [2026-04-19T16:57:33.929Z] Building nodejs source [debug] [2026-04-19T16:57:33.929Z] Failed to find version of module node: reached end of search path /home/leon/Workspace/perso/starter/expo-starter/functions/node_modules [warn] ⚠ functions: You've requested "node" version "24", but the standalone Firebase CLI comes with bundled Node "20". [info] ✔ functions: To use a different Node.js version, consider removing the standalone Firebase CLI and switching to "firebase-tools" on npm. [debug] [2026-04-19T16:57:33.930Z] Could not find functions.yaml. Must use http discovery [debug] [2026-04-19T16:57:33.930Z] Found firebase-functions binary at '/home/leon/Workspace/perso/starter/expo-starter/functions/node_modules/.bin/firebase-functions' [info] Serving at port 8523 [debug] [2026-04-19T16:57:34.271Z] Got response from /__/functions.yaml {"endpoints":{"deleteUserAuthOnUserDocumentDeleted":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.deleted","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"users/{uid}"},"retry":false},"entryPoint":"deleteUserAuthOnUserDocumentDeleted"},"sendTestPushNotification":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"callableTrigger":{},"entryPoint":"sendTestPushNotification"}},"specVersion":"v1alpha1","requiredAPIs":[],"extensions":{}} [info] ✔ functions: Loaded functions definitions from source: deleteUserAuthOnUserDocumentDeleted, sendTestPushNotification. {"metadata":{"emulator":{"name":"functions"},"message":"Loaded functions definitions from source: deleteUserAuthOnUserDocumentDeleted, sendTestPushNotification."}} [debug] [2026-04-19T16:57:38.293Z] [worker-pool] Shutting down IDLE worker (us-central1-sendTestPushNotification) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] Shutting down IDLE worker (us-central1-sendTestPushNotification)"}} [debug] [2026-04-19T16:57:38.293Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: FINISHING {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: FINISHING"}} [debug] [2026-04-19T16:57:38.302Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: exited {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: exited"}} [debug] [2026-04-19T16:57:38.302Z] [worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: FINISHED {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-sendTestPushNotification"},"extension":{},"message":"[worker-us-central1-sendTestPushNotification-b55f52a6-94a7-4563-9b9b-a70f4e52f589]: FINISHED"}}