Description
[REQUIRED] Environment info
firebase-tools: 13.22.0
Platform: macOS
[REQUIRED] Test case
This test of Cloud Tasks in the emulator should work, but it throws an error regarding initializeApp
credentials.
Note: I am using a demo-
prefixed version as described here which should run in offline mode.
Error Message:
Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: "Error fetching access token: invalid_grant (reauth related error (invalid_rapt))". There are two likely causes: (1) your server time is not properly synced or (2) your certificate key file has been revoked. To solve (1), re-sync the time on your server. To solve (2), make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generate a new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk.
Here is a minimal reproduction to show the problem. If you start up the emaultor and visit the URL for testOnRequest
(http://127.0.0.1:5001/demo-project/us-central1/testOnRequest
) it will then trigger the testOnTaskDispatched
Cloud Task function in the emulator and the error shows.
import * as admin from "firebase-admin";
import { HttpsError, onRequest } from "firebase-functions/v2/https";
import { getFunctions } from "firebase-admin/functions";
import { onTaskDispatched } from "firebase-functions/v2/tasks";
import * as logger from "firebase-functions/logger";
import { GoogleAuth } from "google-auth-library";
// Initialize the Firebase app
admin.initializeApp();
let auth: GoogleAuth | null = null;
// TypeScript remake of this function: https://firebase.google.com/docs/functions/task-functions?gen=2nd#retrieve_and_include_the_target_uri
const getFunctionUrl = async (region: string, name: string) => {
if (process.env.FUNCTIONS_EMULATOR === "true") {
console.log("Using emulator");
return `http://127.0.0.1:5001/demo-project/${region}/${name}`;
}
if (!auth) {
auth = new GoogleAuth({
scopes: "https://www.googleapis.com/auth/cloud-platform",
});
}
const projectId: string = await auth.getProjectId();
const url = `https://cloudfunctions.googleapis.com/v2beta/projects/${projectId}/locations/${region}/functions/${name}`;
interface ServiceConfig {
uri?: string;
}
interface DataResponse {
serviceConfig?: ServiceConfig;
}
interface ClientResponse {
data: DataResponse;
}
const client = await auth.getClient();
const res: ClientResponse = await client.request({ url });
const uri: string | undefined = res.data?.serviceConfig?.uri;
if (!uri) {
throw new HttpsError(
"unknown",
`Unable to retrieve uri for function at ${url}`
);
}
return uri;
};
// The http function
export const testOnRequest = onRequest(async (request, response) => {
const taskPayload = {
foo: "bar",
};
const taskFunctionName = "testOnTaskDispatched";
const queue = getFunctions().taskQueue(taskFunctionName);
const functionUrl = await getFunctionUrl("us-central1", taskFunctionName);
try {
await queue.enqueue(taskPayload, {
uri: functionUrl,
});
} catch (error) {
console.error("Error scheduling task", error);
response.status(500).send("Error scheduling task");
return;
}
response.send("Success. Hello from HTTP onRequest!");
});
// The task function
export const testOnTaskDispatched = onTaskDispatched((request) => {
logger.info("Success. Hello logs from TASKS onTaskDispatched!", {
foo: request.data,
});
});
[REQUIRED] Steps to reproduce
- Download this minimal reproduction: https://github.com/BenJackGill/firebase-task-emulator-bug
- Change into the
functions
directory:cd functions
- Install everything:
npm i
- Start the emulator:
npm run serve
- Visit the
testOnRequest
function in the browser which should then in turn trigger the Cloud TasktestOnTaskDispatched
- See the error in the Emulator Logs.
[REQUIRED] Expected behavior
No error should display. The emulator should run the Cloud Task function.
[REQUIRED] Actual behavior
It produces a Credential error as described above.
Here is the full error when using the --debug
flag:
[2024-10-09T09:32:19.662Z] [work-queue] {"queuedWork":["/demo-project/us-central1/testOnRequest-2024-10-09T09:32:19.662Z"],"queueLength":1,"runningWork":[],"workRunningCount":0}
[2024-10-09T09:32:19.663Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/demo-project/us-central1/testOnRequest-2024-10-09T09:32:19.662Z"],"workRunningCount":1}
[2024-10-09T09:32:19.663Z] Accepted request GET /demo-project/us-central1/testOnRequest --> us-central1-testOnRequest
[2024-10-09T09:32:19.664Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}}
[2024-10-09T09:32:19.664Z] [functions] Got req.url=/demo-project/us-central1/testOnRequest, mapping to path=/ {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/demo-project/us-central1/testOnRequest, mapping to path=/"}}
[2024-10-09T09:32:19.670Z] [worker-pool] addWorker(us-central1-testOnRequest) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] addWorker(us-central1-testOnRequest)"}}
[2024-10-09T09:32:19.671Z] [worker-pool] Adding worker with key us-central1-testOnRequest, total=1 {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] Adding worker with key us-central1-testOnRequest, total=1"}}
[2024-10-09T09:32:20.547Z] [runtime-status] [71250] Resolved module firebase-admin {"declared":true,"installed":true,"version":"12.6.0","resolution":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"12.6.0\",\"resolution\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/index.js\"}"}}
[2024-10-09T09:32:20.548Z] [runtime-status] [71250] Resolved module firebase-functions {"declared":true,"installed":true,"version":"6.0.1","resolution":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"6.0.1\",\"resolution\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js\"}"}}
[2024-10-09T09:32:20.548Z] [runtime-status] [71250] 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-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] 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\"}]"}}
[2024-10-09T09:32:20.548Z] [runtime-status] [71250] Resolved module firebase-functions {"declared":true,"installed":true,"version":"6.0.1","resolution":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"6.0.1\",\"resolution\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js\"}"}}
[2024-10-09T09:32:20.664Z] [runtime-status] [71250] Checked functions.config() {"config":{}} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Checked functions.config() {\"config\":{}}"}}
[2024-10-09T09:32:20.664Z] [runtime-status] [71250] firebase-functions has been stubbed. {"functionsResolution":{"declared":true,"installed":true,"version":"6.0.1","resolution":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js"}} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] firebase-functions has been stubbed. {\"functionsResolution\":{\"declared\":true,\"installed\":true,\"version\":\"6.0.1\",\"resolution\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js\"}}"}}
[2024-10-09T09:32:20.664Z] [runtime-status] [71250] Resolved module firebase-functions {"declared":true,"installed":true,"version":"6.0.1","resolution":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"6.0.1\",\"resolution\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js\"}"}}
[2024-10-09T09:32:20.666Z] [runtime-status] [71250] Resolved module firebase-admin {"declared":true,"installed":true,"version":"12.6.0","resolution":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"12.6.0\",\"resolution\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/index.js\"}"}}
[2024-10-09T09:32:20.667Z] [runtime-status] [71250] Resolved module firebase-functions {"declared":true,"installed":true,"version":"6.0.1","resolution":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"6.0.1\",\"resolution\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-functions/lib/v2/index.js\"}"}}
[2024-10-09T09:32:20.667Z] [runtime-status] [71250] firebase-admin has been stubbed. {"adminResolution":{"declared":true,"installed":true,"version":"12.6.0","resolution":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/index.js"}} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] firebase-admin has been stubbed. {\"adminResolution\":{\"declared\":true,\"installed\":true,\"version\":\"12.6.0\",\"resolution\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/index.js\"}}"}}
[2024-10-09T09:32:20.669Z] [runtime-status] [71250] initializeApp(DEFAULT) {"storageBucket":"demo-project.appspot.com","databaseURL":"http://127.0.0.1:9000/?ns=demo-project","projectId":"demo-project"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] initializeApp(DEFAULT) {\"storageBucket\":\"demo-project.appspot.com\",\"databaseURL\":\"http://127.0.0.1:9000/?ns=demo-project\",\"projectId\":\"demo-project\"}"}}
[2024-10-09T09:32:20.674Z] [runtime-status] [71250] Functions runtime initialized. {"cwd":"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions","node_version":"20.11.0"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Functions runtime initialized. {\"cwd\":\"/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions\",\"node_version\":\"20.11.0\"}"}}
[2024-10-09T09:32:20.674Z] [runtime-status] [71250] Listening to port: /var/folders/54/ycb88nfn51q2krxjvbj_2t480000gn/T/fire_emu_89cd56f40a94c86e.sock {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[runtime-status] [71250] Listening to port: /var/folders/54/ycb88nfn51q2krxjvbj_2t480000gn/T/fire_emu_89cd56f40a94c86e.sock"}}
[2024-10-09T09:32:20.689Z] [worker-us-central1-testOnRequest-4a17b6f0-06c5-4f9e-833d-5139be60edd2]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[worker-us-central1-testOnRequest-4a17b6f0-06c5-4f9e-833d-5139be60edd2]: IDLE"}}
[2024-10-09T09:32:20.690Z] [worker-pool] submitRequest(triggerId=us-central1-testOnRequest) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=us-central1-testOnRequest)"}}
i functions: Beginning execution of "us-central1-testOnRequest" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"Beginning execution of \"us-central1-testOnRequest\""}}
[2024-10-09T09:32:20.690Z] [worker-us-central1-testOnRequest-4a17b6f0-06c5-4f9e-833d-5139be60edd2]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[worker-us-central1-testOnRequest-4a17b6f0-06c5-4f9e-833d-5139be60edd2]: BUSY"}}
> Using emulator {"user":"Using emulator","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m Using emulator"}}
> Error scheduling task FirebaseAppError: Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: "Error fetching access token: invalid_grant (reauth related error (invalid_rapt))". There are two likely causes: (1) your server time is not properly synced or (2) your certificate key file has been revoked. To solve (1), re-sync the time on your server. To solve (2), make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generate a new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk. {"user":"Error scheduling task FirebaseAppError: Credential implementation provided to initializeApp() via the \"credential\" property failed to fetch a valid Google OAuth2 access token with the following error: \"Error fetching access token: invalid_grant (reauth related error (invalid_rapt))\". There are two likely causes: (1) your server time is not properly synced or (2) your certificate key file has been revoked. To solve (1), re-sync the time on your server. To solve (2), make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generate a new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk.","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m Error scheduling task FirebaseAppError: Credential implementation provided to initializeApp() via the \"credential\" property failed to fetch a valid Google OAuth2 access token with the following error: \"Error fetching access token: invalid_grant (reauth related error (invalid_rapt))\". There are two likely causes: (1) your server time is not properly synced or (2) your certificate key file has been revoked. To solve (1), re-sync the time on your server. To solve (2), make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generate a new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk."}}
> at /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/app/firebase-app.js:87:19 {"user":" at /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/app/firebase-app.js:87:19","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m at /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/app/firebase-app.js:87:19"}}
> at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {"user":" at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"}}
> at async FunctionsApiClient.enqueue (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/functions/functions-api-client-internal.js:141:13) {"user":" at async FunctionsApiClient.enqueue (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/functions/functions-api-client-internal.js:141:13)","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m at async FunctionsApiClient.enqueue (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-admin/lib/functions/functions-api-client-internal.js:141:13)"}}
> at async /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/lib/index.js:44:9 {"user":" at async /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/lib/index.js:44:9","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m at async /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/lib/index.js:44:9"}}
> at async runFunction (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:506:9) {"user":" at async runFunction (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:506:9)","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m at async runFunction (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:506:9)"}}
> at async runHTTPS (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:531:5) {"user":" at async runHTTPS (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:531:5)","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m at async runHTTPS (/Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:531:5)"}}
> at async /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:694:21 { {"user":" at async /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:694:21 {","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m at async /Users/BenJackGill/Dev/fire/firebase-tasks-uri-bug/functions/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:694:21 {"}}
> errorInfo: { {"user":" errorInfo: {","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m errorInfo: {"}}
> code: 'app/invalid-credential', {"user":" code: 'app/invalid-credential',","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m code: 'app/invalid-credential',"}}
> message: 'Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: "Error fetching access token: invalid_grant (reauth related error (invalid_rapt))". There are two likely causes: (1) your server time is not properly synced or (2) your certificate key file has been revoked. To solve (1), re-sync the time on your server. To solve (2), make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generate a new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk.' {"user":" message: 'Credential implementation provided to initializeApp() via the \"credential\" property failed to fetch a valid Google OAuth2 access token with the following error: \"Error fetching access token: invalid_grant (reauth related error (invalid_rapt))\". There are two likely causes: (1) your server time is not properly synced or (2) your certificate key file has been revoked. To solve (1), re-sync the time on your server. To solve (2), make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generate a new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk.'","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m message: 'Credential implementation provided to initializeApp() via the \"credential\" property failed to fetch a valid Google OAuth2 access token with the following error: \"Error fetching access token: invalid_grant (reauth related error (invalid_rapt))\". There are two likely causes: (1) your server time is not properly synced or (2) your certificate key file has been revoked. To solve (1), re-sync the time on your server. To solve (2), make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generate a new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk.'"}}
> }, {"user":" },","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m },"}}
> codePrefix: 'app' {"user":" codePrefix: 'app'","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m codePrefix: 'app'"}}
> } {"user":"}","metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"\u001b[90m> \u001b[39m }"}}
[2024-10-09T09:32:20.996Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"Finishing up request with event=pause"}}
i functions: Finished "us-central1-testOnRequest" in 306.2765ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"Finished \"us-central1-testOnRequest\" in 306.2765ms"}}
[2024-10-09T09:32:20.997Z] [worker-us-central1-testOnRequest-4a17b6f0-06c5-4f9e-833d-5139be60edd2]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"[worker-us-central1-testOnRequest-4a17b6f0-06c5-4f9e-833d-5139be60edd2]: IDLE"}}
[2024-10-09T09:32:20.997Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"Finishing up request with event=finish"}}
[2024-10-09T09:32:20.997Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"us-central1-testOnRequest"},"extension":{},"message":"Finishing up request with event=close"}}
[2024-10-09T09:32:20.997Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0}