diff --git a/database-debug.log b/database-debug.log index e69de29..87ab9c6 100644 --- a/database-debug.log +++ b/database-debug.log @@ -0,0 +1,13 @@ +WARNING: A terminally deprecated method in sun.misc.Unsafe has been called +WARNING: sun.misc.Unsafe::objectFieldOffset has been called by akka.util.Unsafe (file:/C:/Users/%ec%9c%a4%ec%a0%95%eb%af%bc/.cache/firebase/emulators/firebase-database-emulator-v4.11.2.jar) +WARNING: Please consider reporting this to the maintainers of class akka.util.Unsafe +WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release +12:30:05.819 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started +12:30:05.923 [main] INFO com.firebase.server.forge.App$ - Listening at 0.0.0.0:9000 +12:30:09.083 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO com.firebase.core.namespace.NamespaceActor - mmday-panit-default-rtdb successfully activated FBKV (SurveyIdle(0)) wait: 80ms, init: 0ms +12:30:09.125 [NamespaceSystem-blocking-namespace-operation-dispatcher-6] INFO com.firebase.core.namespace.StateManager - Namespace mmday-panit-default-rtdb status Active to Active +12:30:13.051 [FirebaseWorkerPool-1-3] WARN com.firebase.core.persistence.backend.dummy.EmulatorMetadataPersistence - Multiple projectIds are not recommended in single project mode. Requested +namespace mmday-panit, but the emulator is configured for mmday-panit-default-rtdb. To +opt-out of single project mode add/set the singleProjectMode: false property in +the firebase.json emulators config. +12:30:13.054 [NamespaceSystem-akka.actor.default-dispatcher-5] INFO com.firebase.core.namespace.NamespaceActor - mmday-panit successfully activated FBKV (SurveyIdle(0)) wait: 1ms, init: 0ms diff --git a/firebase-debug.log b/firebase-debug.log deleted file mode 100644 index 03cf687..0000000 --- a/firebase-debug.log +++ /dev/null @@ -1,1571 +0,0 @@ -[debug] [2026-04-12T23:59:29.449Z] ---------------------------------------------------------------------- -[debug] [2026-04-12T23:59:29.451Z] Command: C:\Program Files\nodejs\node.exe C:\Users\윤정민\AppData\Roaming\npm\node_modules\firebase-tools\lib\bin\firebase.js emulators:start --only auth,database,firestore,functions -[debug] [2026-04-12T23:59:29.451Z] CLI Version: 15.14.0 -[debug] [2026-04-12T23:59:29.451Z] Platform: win32 -[debug] [2026-04-12T23:59:29.451Z] Node Version: v24.14.1 -[debug] [2026-04-12T23:59:29.451Z] Time: Mon Apr 13 2026 08:59:29 GMT+0900 (한국 표준시) -[debug] [2026-04-12T23:59:29.451Z] ---------------------------------------------------------------------- -[debug] -[debug] [2026-04-12T23:59:30.094Z] > 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-12T23:59:30.094Z] > authorizing via signed-in user (graywolf147@gmail.com) -[debug] [2026-04-12T23:59:30.189Z] java version "26" 2026-03-17 - -[debug] [2026-04-12T23:59:30.189Z] Java(TM) SE Runtime Environment (build 26+35-2893) -Java HotSpot(TM) 64-Bit Server VM (build 26+35-2893, mixed mode, sharing) - -[debug] [2026-04-12T23:59:30.196Z] Parsed Java major version: 26 -[info] i emulators: Starting emulators: auth, functions, firestore, database {"metadata":{"emulator":{"name":"hub"},"message":"Starting emulators: auth, functions, firestore, database"}} -[debug] [2026-04-12T23:59:30.202Z] [logging] Logging Emulator only supports listening on one address (127.0.0.1). Not listening on ::1 -[debug] [2026-04-12T23:59:30.202Z] assigned listening specs for emulators {"user":{"ui":[{"address":"0.0.0.0","family":"IPv4","port":4000}],"auth":[{"address":"0.0.0.0","family":"IPv4","port":9099}],"firestore":[{"address":"0.0.0.0","family":"IPv4","port":8080}],"firestore.websocket":[{"address":"0.0.0.0","family":"IPv4","port":9150}],"database":[{"address":"0.0.0.0","family":"IPv4","port":9000}],"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-12T23:59:30.205Z] Write emulator hub locator at C:\Users\윤정민\AppData\Local\Temp\hub-mmday-panit.json -[debug] [2026-04-12T23:59:30.210Z] [eventarc] Eventarc Emulator only supports listening on one address (127.0.0.1). Not listening on ::1 -[debug] [2026-04-12T23:59:30.210Z] [tasks] Cloud Tasks Emulator only supports listening on one address (127.0.0.1). Not listening on ::1 -[debug] [2026-04-12T23:59:30.210Z] late-assigned ports for functions and eventarc emulators {"user":{"ui":[{"address":"0.0.0.0","family":"IPv4","port":4000}],"auth":[{"address":"0.0.0.0","family":"IPv4","port":9099}],"firestore":[{"address":"0.0.0.0","family":"IPv4","port":8080}],"firestore.websocket":[{"address":"0.0.0.0","family":"IPv4","port":9150}],"database":[{"address":"0.0.0.0","family":"IPv4","port":9000}],"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, 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, hosting, pubsub, storage, dataconnect\u001b[22m"}} -[debug] [2026-04-12T23:59:30.220Z] defaultcredentials: writing to file C:\Users\윤정민\AppData\Roaming\firebase\graywolf147_gmail_com_application_default_credentials.json -[debug] [2026-04-12T23:59:30.221Z] Setting GAC to C:\Users\윤정민\AppData\Roaming\firebase\graywolf147_gmail_com_application_default_credentials.json {"metadata":{"emulator":{"name":"functions"},"message":"Setting GAC to C:\\Users\\윤정민\\AppData\\Roaming\\firebase\\graywolf147_gmail_com_application_default_credentials.json"}} -[debug] [2026-04-12T23:59:30.221Z] Checked if tokens are valid: true, expires at: 1776041278436 -[debug] [2026-04-12T23:59:30.221Z] Checked if tokens are valid: true, expires at: 1776041278436 -[debug] [2026-04-12T23:59:30.222Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/mmday-panit/adminSdkConfig [none] -[debug] [2026-04-12T23:59:30.958Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/mmday-panit/adminSdkConfig 200 -[debug] [2026-04-12T23:59:30.959Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/mmday-panit/adminSdkConfig {"projectId":"mmday-panit","databaseURL":"https://mmday-panit-default-rtdb.asia-southeast1.firebasedatabase.app","storageBucket":"mmday-panit.firebasestorage.app"} -[debug] [2026-04-12T23:59:30.967Z] Ignoring unsupported arg: auto_download {"metadata":{"emulator":{"name":"firestore"},"message":"Ignoring unsupported arg: auto_download"}} -[debug] [2026-04-12T23:59:30.967Z] Ignoring unsupported arg: single_project_mode_error {"metadata":{"emulator":{"name":"firestore"},"message":"Ignoring unsupported arg: single_project_mode_error"}} -[debug] [2026-04-12T23:59:30.967Z] Starting Firestore Emulator with command {"binary":"java","args":["-Dgoogle.cloud_firestore.debug_log_level=FINE","-Duser.language=en","-jar","C:\\Users\\윤정민\\.cache\\firebase\\emulators\\cloud-firestore-emulator-v1.20.4.jar","--host","0.0.0.0","--port",8080,"--websocket_port",9150,"--database-edition","standard","--project_id","mmday-panit","--rules","D:\\Projects\\WebstormProjects\\mmday-firebase\\firestore.rules","--single_project_mode",true,"--functions_emulator","127.0.0.1:5001"],"optionalArgs":["port","webchannel_port","host","rules","websocket_port","database-edition","functions_emulator","seed_from_export","project_id","single_project_mode"],"joinArgs":false,"shell":false,"port":8080} {"metadata":{"emulator":{"name":"firestore"},"message":"Starting Firestore Emulator with command {\"binary\":\"java\",\"args\":[\"-Dgoogle.cloud_firestore.debug_log_level=FINE\",\"-Duser.language=en\",\"-jar\",\"C:\\\\Users\\\\윤정민\\\\.cache\\\\firebase\\\\emulators\\\\cloud-firestore-emulator-v1.20.4.jar\",\"--host\",\"0.0.0.0\",\"--port\",8080,\"--websocket_port\",9150,\"--database-edition\",\"standard\",\"--project_id\",\"mmday-panit\",\"--rules\",\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\firestore.rules\",\"--single_project_mode\",true,\"--functions_emulator\",\"127.0.0.1:5001\"],\"optionalArgs\":[\"port\",\"webchannel_port\",\"host\",\"rules\",\"websocket_port\",\"database-edition\",\"functions_emulator\",\"seed_from_export\",\"project_id\",\"single_project_mode\"],\"joinArgs\":false,\"shell\":false,\"port\":8080}"}} -[info] i firestore: Firestore Emulator logging to firestore-debug.log {"metadata":{"emulator":{"name":"firestore"},"message":"Firestore Emulator logging to \u001b[1mfirestore-debug.log\u001b[22m"}} -[info] + firestore: Firestore Emulator was started in standard edition. {"metadata":{"emulator":{"name":"firestore"},"message":"Firestore Emulator was started in standard edition."}} -[info] + firestore: Firestore Emulator UI websocket is running on 9150. {"metadata":{"emulator":{"name":"firestore"},"message":"Firestore Emulator UI websocket is running on 9150."}} -[debug] [2026-04-12T23:59:32.021Z] Checked if tokens are valid: true, expires at: 1776041278436 -[debug] [2026-04-12T23:59:32.021Z] Checked if tokens are valid: true, expires at: 1776041278436 -[debug] [2026-04-12T23:59:32.021Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/mmday-panit [none] -[debug] [2026-04-12T23:59:32.361Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/mmday-panit 200 -[debug] [2026-04-12T23:59:32.361Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/mmday-panit {"projectId":"mmday-panit","projectNumber":"650638194863","displayName":"mmday-panit","name":"projects/mmday-panit","resources":{"hostingSite":"mmday-panit","realtimeDatabaseInstance":"mmday-panit-default-rtdb"},"state":"ACTIVE","etag":"1_b78f2391-577f-4d81-b273-047d44119194"} -[debug] [2026-04-12T23:59:32.361Z] database rules config: [{"instance":"mmday-panit-default-rtdb","rules":"D:\\Projects\\WebstormProjects\\mmday-firebase\\database.rules.json"}] -[debug] [2026-04-12T23:59:32.362Z] Ignoring unsupported arg: projectId {"metadata":{"emulator":{"name":"database"},"message":"Ignoring unsupported arg: projectId"}} -[debug] [2026-04-12T23:59:32.362Z] Ignoring unsupported arg: auto_download {"metadata":{"emulator":{"name":"database"},"message":"Ignoring unsupported arg: auto_download"}} -[debug] [2026-04-12T23:59:32.362Z] Ignoring unsupported arg: rules {"metadata":{"emulator":{"name":"database"},"message":"Ignoring unsupported arg: rules"}} -[debug] [2026-04-12T23:59:32.363Z] Starting Database Emulator with command {"binary":"java","args":["-Duser.language=en","-jar","C:\\Users\\윤정민\\.cache\\firebase\\emulators\\firebase-database-emulator-v4.11.2.jar","--host","0.0.0.0","--port",9000,"--single_project_mode","Warning","--functions_emulator_host","127.0.0.1","--functions_emulator_port",5001],"optionalArgs":["port","host","functions_emulator_port","functions_emulator_host","single_project_mode"],"joinArgs":false,"shell":false,"port":9000} {"metadata":{"emulator":{"name":"database"},"message":"Starting Database Emulator with command {\"binary\":\"java\",\"args\":[\"-Duser.language=en\",\"-jar\",\"C:\\\\Users\\\\윤정민\\\\.cache\\\\firebase\\\\emulators\\\\firebase-database-emulator-v4.11.2.jar\",\"--host\",\"0.0.0.0\",\"--port\",9000,\"--single_project_mode\",\"Warning\",\"--functions_emulator_host\",\"127.0.0.1\",\"--functions_emulator_port\",5001],\"optionalArgs\":[\"port\",\"host\",\"functions_emulator_port\",\"functions_emulator_host\",\"single_project_mode\"],\"joinArgs\":false,\"shell\":false,\"port\":9000}"}} -[info] i database: Database Emulator logging to database-debug.log {"metadata":{"emulator":{"name":"database"},"message":"Database Emulator logging to \u001b[1mdatabase-debug.log\u001b[22m"}} -[debug] [2026-04-12T23:59:36.767Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:36.767Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:36.767Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:36.767Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:36.769Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:36.769Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:36.769Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:36.769Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:36.769Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:36.770Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[info] i functions: Watching "D:\Projects\WebstormProjects\mmday-firebase" for Cloud Functions... {"metadata":{"emulator":{"name":"functions"},"message":"Watching \"D:\\Projects\\WebstormProjects\\mmday-firebase\" for Cloud Functions..."}} -[debug] [2026-04-12T23:59:36.775Z] Validating nodejs source -[warn] ! functions: package.json indicates an outdated version of firebase-functions. Please upgrade using npm install --save firebase-functions@latest in your functions directory. -[debug] [2026-04-12T23:59:37.265Z] > [functions] package.json contents: { - "name": "functions", - "scripts": { - "lint": "eslint --ext .js,.ts .", - "build": "tsc", - "build:watch": "tsc --watch", - "serve": "npm run build && firebase emulators:start --only auth,functions,firestore,database,storage", - "shell": "npm run build && firebase functions:shell", - "start": "npm run shell", - "deploy": "firebase deploy --only functions", - "logs": "firebase functions:log", - "test": "firebase emulators:exec --only firestore,database,auth \"vitest run\"", - "test:watch": "vitest" - }, - "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": "^5.7.3", - "vitest": "^4.1.4" - }, - "private": true -} -[debug] [2026-04-12T23:59:37.265Z] Building nodejs source -[debug] [2026-04-12T23:59:37.265Z] Failed to find version of module node: reached end of search path D:\Projects\WebstormProjects\mmday-firebase\node_modules -[warn] ! functions: Your requested "node" version "22" doesn't match your global version "24". Using node@24 from host. -[debug] [2026-04-12T23:59:37.268Z] Could not find functions.yaml. Must use http discovery -[debug] [2026-04-12T23:59:37.273Z] Found firebase-functions binary at 'D:\Projects\WebstormProjects\mmday-firebase\node_modules\.bin\firebase-functions' -[info] Serving at port 8226 - -[debug] [2026-04-12T23:59:37.612Z] Got response from /__/functions.yaml {"endpoints":{"kbo":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["asia-northeast3"],"labels":{},"httpsTrigger":{},"entryPoint":"kbo"},"auth":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["asia-northeast3"],"labels":{},"httpsTrigger":{},"entryPoint":"auth"},"prediction":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["asia-northeast3"],"labels":{},"httpsTrigger":{},"entryPoint":"prediction"},"stats":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["asia-northeast3"],"labels":{},"httpsTrigger":{},"entryPoint":"stats"},"admin":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["asia-northeast3"],"labels":{},"httpsTrigger":{},"entryPoint":"admin"},"kboDailyRefresh":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["asia-northeast3"],"labels":{},"scheduleTrigger":{"schedule":"0 2 * * *","retryConfig":{},"timeZone":"Asia/Seoul"},"entryPoint":"kboDailyRefresh"},"dailyArchive":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":10,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["asia-northeast3"],"labels":{},"scheduleTrigger":{"schedule":"0 2 * * *","retryConfig":{},"timeZone":"Asia/Seoul"},"entryPoint":"dailyArchive"}},"specVersion":"v1alpha1","requiredAPIs":[{"api":"cloudscheduler.googleapis.com","reason":"Needed for scheduled functions."}],"extensions":{}} -[debug] [2026-04-12T23:59:39.059Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:39.059Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:39.059Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:39.059Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:39.059Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:39.082Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:39.082Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:39.082Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:39.082Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:39.082Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:40.664Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:40.664Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:40.664Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:40.664Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:40.664Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:40.675Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:40.675Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:40.675Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:40.675Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:40.675Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[info] + functions: Loaded functions definitions from source: kbo, auth, prediction, stats, admin, kboDailyRefresh, dailyArchive. {"metadata":{"emulator":{"name":"functions"},"message":"Loaded functions definitions from source: kbo, auth, prediction, stats, admin, kboDailyRefresh, dailyArchive."}} -[info] + functions[asia-northeast3-kbo]: http function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/kbo). {"metadata":{"emulator":{"name":"functions"},"message":"\u001b[1mhttp\u001b[22m function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/kbo)."}} -[info] + functions[asia-northeast3-auth]: http function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/auth). {"metadata":{"emulator":{"name":"functions"},"message":"\u001b[1mhttp\u001b[22m function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/auth)."}} -[info] + functions[asia-northeast3-prediction]: http function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/prediction). {"metadata":{"emulator":{"name":"functions"},"message":"\u001b[1mhttp\u001b[22m function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/prediction)."}} -[info] + functions[asia-northeast3-stats]: http function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/stats). {"metadata":{"emulator":{"name":"functions"},"message":"\u001b[1mhttp\u001b[22m function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/stats)."}} -[info] + functions[asia-northeast3-admin]: http function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/admin). {"metadata":{"emulator":{"name":"functions"},"message":"\u001b[1mhttp\u001b[22m function initialized (http://127.0.0.1:5001/mmday-panit/asia-northeast3/admin)."}} -[info] i functions[asia-northeast3-kboDailyRefresh]: function ignored because the pubsub emulator does not exist or is not running. {"metadata":{"emulator":{"name":"functions"},"message":"function ignored because the pubsub emulator does not exist or is not running."}} -[info] i functions[asia-northeast3-dailyArchive]: function ignored because the pubsub emulator does not exist or is not running. {"metadata":{"emulator":{"name":"functions"},"message":"function ignored because the pubsub emulator does not exist or is not running."}} -[debug] [2026-04-12T23:59:41.642Z] >>> [apiv2][query] PUT http://127.0.0.1:9000/.settings/rules.json ns=mmday-panit-default-rtdb -[debug] [2026-04-12T23:59:41.642Z] >>> [apiv2][body] PUT http://127.0.0.1:9000/.settings/rules.json "{\n \"rules\": {\n \"votes\": {\n \"$gameId\": {\n \".read\": \"auth != null\",\n \"counts\": {\n \".read\": true\n },\n \".write\": false\n }\n },\n \"userVotes\": {\n \"$uid\": {\n \".read\": \"auth != null && auth.uid == $uid\",\n \".write\": false\n }\n },\n \"cache\": {\n \".read\": false,\n \".write\": false\n }\n }\n}\n" -[debug] [2026-04-12T23:59:41.886Z] <<< [apiv2][status] PUT http://127.0.0.1:9000/.settings/rules.json 200 -[debug] [2026-04-12T23:59:41.886Z] <<< [apiv2][body] PUT http://127.0.0.1:9000/.settings/rules.json {"status":"ok"} -[debug] [2026-04-12T23:59:41.888Z] Could not find VSCode notification endpoint: FetchError: request to http://localhost:40001/vscode/notify failed, reason: . If you are not running the Firebase Data 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 │ -├────────────────┼──────────────┼─────────────────────────────────┤ -│ Authentication │ 0.0.0.0:9099 │ http://127.0.0.1:4000/auth │ -├────────────────┼──────────────┼─────────────────────────────────┤ -│ Functions │ 0.0.0.0:5001 │ http://127.0.0.1:4000/functions │ -├────────────────┼──────────────┼─────────────────────────────────┤ -│ Firestore │ 0.0.0.0:8080 │ http://127.0.0.1:4000/firestore │ -├────────────────┼──────────────┼─────────────────────────────────┤ -│ Database │ 0.0.0.0:9000 │ http://127.0.0.1:4000/database │ -└────────────────┴──────────────┴─────────────────────────────────┘ - Emulator Hub host: 127.0.0.1 port: 4400 - Other reserved ports: 4500, 9150 - -Issues? Report them at https://github.com/firebase/firebase-tools/issues and attach the *-debug.log files. - -[debug] [2026-04-12T23:59:43.010Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:43.010Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:43.011Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:43.010Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:43.011Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-12T23:59:43.011Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:43.011Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-12T23:59:43.018Z] [worker-pool] addWorker(asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] addWorker(asia-northeast3-stats)"}} -[debug] [2026-04-12T23:59:43.019Z] [worker-pool] Adding worker with key asia-northeast3-stats, total=1 {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] Adding worker with key asia-northeast3-stats, total=1"}} -[debug] [2026-04-12T23:59:43.028Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:43.028Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:43.010Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:43.028Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:43.010Z","/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:43.028Z"],"workRunningCount":2} -[debug] [2026-04-12T23:59:43.028Z] Accepted request GET /mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4 --> asia-northeast3-kbo -[debug] [2026-04-12T23:59:43.029Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:43.029Z] [functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4"}} -[debug] [2026-04-12T23:59:43.031Z] [worker-pool] addWorker(asia-northeast3-kbo) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] addWorker(asia-northeast3-kbo)"}} -[debug] [2026-04-12T23:59:43.031Z] [worker-pool] Adding worker with key asia-northeast3-kbo, total=1 {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] Adding worker with key asia-northeast3-kbo, total=1"}} -[debug] [2026-04-12T23:59:43.549Z] [runtime-status] [751372] Resolved module firebase-admin {"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.550Z] [runtime-status] [748032] Resolved module firebase-admin {"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.550Z] [runtime-status] [751372] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.550Z] [runtime-status] [751372] 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":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] 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-12T23:59:43.550Z] [runtime-status] [748032] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.550Z] [runtime-status] [748032] 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":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] 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-12T23:59:43.551Z] [runtime-status] [751372] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.551Z] [runtime-status] [751372] Detected firebase-functions v7+, skipping legacy stubs. {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] Detected firebase-functions v7+, skipping legacy stubs."}} -[debug] [2026-04-12T23:59:43.551Z] [runtime-status] [748032] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.551Z] [runtime-status] [748032] Detected firebase-functions v7+, skipping legacy stubs. {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] Detected firebase-functions v7+, skipping legacy stubs."}} -[debug] [2026-04-12T23:59:43.551Z] [runtime-status] [751372] Resolved module firebase-admin {"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.551Z] [runtime-status] [748032] Resolved module firebase-admin {"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.580Z] [runtime-status] [751372] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.580Z] [runtime-status] [748032] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:43.705Z] [runtime-status] [751372] firebase-admin has been stubbed. {"adminResolution":{"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"}} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] firebase-admin has been stubbed. {\"adminResolution\":{\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}}"}} -[debug] [2026-04-12T23:59:43.706Z] [runtime-status] [748032] firebase-admin has been stubbed. {"adminResolution":{"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"}} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] firebase-admin has been stubbed. {\"adminResolution\":{\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}}"}} -[debug] [2026-04-12T23:59:43.722Z] [runtime-status] [751372] Functions runtime initialized. {"cwd":"D:\\Projects\\WebstormProjects\\mmday-firebase","node_version":"24.14.1"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] Functions runtime initialized. {\"cwd\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\",\"node_version\":\"24.14.1\"}"}} -[debug] [2026-04-12T23:59:43.722Z] [runtime-status] [751372] Listening to port: \\?\pipe\fire_emu_819f8b585d1de522 {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[runtime-status] [751372] Listening to port: \\\\?\\pipe\\fire_emu_819f8b585d1de522"}} -[debug] [2026-04-12T23:59:43.723Z] [runtime-status] [748032] Functions runtime initialized. {"cwd":"D:\\Projects\\WebstormProjects\\mmday-firebase","node_version":"24.14.1"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] Functions runtime initialized. {\"cwd\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\",\"node_version\":\"24.14.1\"}"}} -[debug] [2026-04-12T23:59:43.723Z] [runtime-status] [748032] Listening to port: \\?\pipe\fire_emu_30f3d2eb1c09b165 {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[runtime-status] [748032] Listening to port: \\\\?\\pipe\\fire_emu_30f3d2eb1c09b165"}} -[debug] [2026-04-12T23:59:43.782Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-12T23:59:43.782Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-12T23:59:43.783Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-12T23:59:43.787Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 4.6158ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 4.6158ms"}} -[debug] [2026-04-12T23:59:43.788Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-12T23:59:43.788Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:43.788Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:43.788Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-12T23:59:43.028Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:43.791Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE"}} -[debug] [2026-04-12T23:59:43.791Z] [worker-pool] submitRequest(triggerId=asia-northeast3-kbo) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-kbo)"}} -[info] i functions: Beginning execution of "asia-northeast3-kbo" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Beginning execution of \"asia-northeast3-kbo\""}} -[debug] [2026-04-12T23:59:43.791Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY"}} -[debug] [2026-04-12T23:59:44.801Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-kbo" in 1009.8071ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finished \"asia-northeast3-kbo\" in 1009.8071ms"}} -[debug] [2026-04-12T23:59:44.801Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE"}} -[debug] [2026-04-12T23:59:44.801Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:44.801Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:44.802Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:50.181Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:50.181Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:50.181Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:50.181Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:50.181Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-12T23:59:50.183Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:50.183Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-12T23:59:50.183Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-12T23:59:50.183Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-12T23:59:50.184Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:50.184Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:50.181Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:50.184Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:50.181Z","/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:50.184Z"],"workRunningCount":2} -[debug] [2026-04-12T23:59:50.184Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-12T23:59:50.185Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:50.185Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-12T23:59:50.189Z] [worker-pool] addWorker(asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] addWorker(asia-northeast3-prediction)"}} -[debug] [2026-04-12T23:59:50.189Z] [worker-pool] Adding worker with key asia-northeast3-prediction, total=1 {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] Adding worker with key asia-northeast3-prediction, total=1"}} -[debug] [2026-04-12T23:59:50.190Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 6.493ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 6.493ms"}} -[debug] [2026-04-12T23:59:50.190Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-12T23:59:50.190Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:50.190Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:50.190Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:50.184Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:50.727Z] [runtime-status] [756912] Resolved module firebase-admin {"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:50.728Z] [runtime-status] [756912] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:50.728Z] [runtime-status] [756912] 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":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] 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-12T23:59:50.728Z] [runtime-status] [756912] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:50.728Z] [runtime-status] [756912] Detected firebase-functions v7+, skipping legacy stubs. {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] Detected firebase-functions v7+, skipping legacy stubs."}} -[debug] [2026-04-12T23:59:50.729Z] [runtime-status] [756912] Resolved module firebase-admin {"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] Resolved module firebase-admin {\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:50.757Z] [runtime-status] [756912] Resolved module firebase-functions {"declared":true,"installed":true,"version":"7.2.2","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-functions\\lib\\v2\\index.js"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] Resolved module firebase-functions {\"declared\":true,\"installed\":true,\"version\":\"7.2.2\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-functions\\\\lib\\\\v2\\\\index.js\"}"}} -[debug] [2026-04-12T23:59:50.882Z] [runtime-status] [756912] firebase-admin has been stubbed. {"adminResolution":{"declared":true,"installed":true,"version":"13.7.0","resolution":"D:\\Projects\\WebstormProjects\\mmday-firebase\\node_modules\\firebase-admin\\lib\\index.js"}} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] firebase-admin has been stubbed. {\"adminResolution\":{\"declared\":true,\"installed\":true,\"version\":\"13.7.0\",\"resolution\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\\\\node_modules\\\\firebase-admin\\\\lib\\\\index.js\"}}"}} -[debug] [2026-04-12T23:59:50.898Z] [runtime-status] [756912] Functions runtime initialized. {"cwd":"D:\\Projects\\WebstormProjects\\mmday-firebase","node_version":"24.14.1"} {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] Functions runtime initialized. {\"cwd\":\"D:\\\\Projects\\\\WebstormProjects\\\\mmday-firebase\",\"node_version\":\"24.14.1\"}"}} -[debug] [2026-04-12T23:59:50.898Z] [runtime-status] [756912] Listening to port: \\?\pipe\fire_emu_954ab81c025cad8f {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[runtime-status] [756912] Listening to port: \\\\?\\pipe\\fire_emu_954ab81c025cad8f"}} -[debug] [2026-04-12T23:59:50.949Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-12T23:59:50.949Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-12T23:59:50.950Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-12T23:59:50.954Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 4.2172ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 4.2172ms"}} -[debug] [2026-04-12T23:59:50.954Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-12T23:59:50.954Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:50.954Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:50.954Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:51.189Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:51.189Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:51.189Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:51.189Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:51.189Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-12T23:59:51.190Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:51.190Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-12T23:59:51.190Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-12T23:59:51.190Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-12T23:59:51.192Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.7718ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.7718ms"}} -[debug] [2026-04-12T23:59:51.192Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-12T23:59:51.192Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:51.192Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:51.192Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:51.623Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:51.623Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:51.623Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:51.623Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:51.623Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-12T23:59:51.624Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:51.624Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-12T23:59:51.624Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-12T23:59:51.624Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-12T23:59:51.626Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.3829ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.3829ms"}} -[debug] [2026-04-12T23:59:51.626Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-12T23:59:51.626Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:51.626Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:51.626Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:52.461Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:52.461Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:52.461Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:52.461Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:52.461Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-12T23:59:52.462Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:52.462Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-12T23:59:52.462Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-12T23:59:52.462Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-12T23:59:52.463Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.1489ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.1489ms"}} -[debug] [2026-04-12T23:59:52.463Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-12T23:59:52.463Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:52.463Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:52.464Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:54.091Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:54.091Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:54.091Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:54.091Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:54.091Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-12T23:59:54.091Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:54.091Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-12T23:59:54.092Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-12T23:59:54.092Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-12T23:59:54.093Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.3804ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.3804ms"}} -[debug] [2026-04-12T23:59:54.093Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-12T23:59:54.093Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:54.093Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:54.093Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:56.633Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:56.633Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:56.633Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-12T23:59:56.633Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:56.633Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-12T23:59:56.633Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:56.634Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-12T23:59:56.634Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-12T23:59:56.634Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-12T23:59:56.637Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 2.5694ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 2.5694ms"}} -[debug] [2026-04-12T23:59:56.637Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-12T23:59:56.637Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:56.637Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:56.637Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:57.312Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:57.312Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-12T23:59:57.312Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-12T23:59:57.312Z"],"workRunningCount":1} -[debug] [2026-04-12T23:59:57.312Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-12T23:59:57.312Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-12T23:59:57.313Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-12T23:59:57.313Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-12T23:59:57.313Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-12T23:59:57.315Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.7487ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.7487ms"}} -[debug] [2026-04-12T23:59:57.315Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-12T23:59:57.315Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-12T23:59:57.315Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-12T23:59:57.315Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:03.081Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:00:03.081Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:03.081Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:00:03.081Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:03.081Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:00:03.082Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:03.082Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:00:03.082Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:00:03.083Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:00:03.084Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.6566ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.6566ms"}} -[debug] [2026-04-13T00:00:03.084Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:00:03.084Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:03.084Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:03.084Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:03.737Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:03.737Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:03.737Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:03.737Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:03.737Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:00:03.738Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:03.738Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:00:03.738Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:00:03.738Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:00:03.740Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.8128ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.8128ms"}} -[debug] [2026-04-13T00:00:03.740Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:00:03.740Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:03.740Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:03.740Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:09.521Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:00:09.521Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:09.521Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:00:09.521Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:09.521Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:00:09.522Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:09.523Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:00:09.523Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:00:09.523Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:00:09.524Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.5983ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.5983ms"}} -[debug] [2026-04-13T00:00:09.525Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:00:09.525Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:09.525Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:09.525Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:10.177Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:10.177Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:10.177Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:10.177Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:10.177Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:00:10.177Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:10.177Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:00:10.177Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:00:10.177Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:00:10.179Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.5731ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.5731ms"}} -[debug] [2026-04-13T00:00:10.179Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:00:10.179Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:10.179Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:10.179Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:15.972Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:00:15.972Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:15.973Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:00:15.972Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:15.973Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:00:15.974Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:15.974Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:00:15.974Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:00:15.974Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:00:15.975Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.5083ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.5083ms"}} -[debug] [2026-04-13T00:00:15.976Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:00:15.976Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:15.976Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:15.976Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:16.602Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:16.602Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:16.602Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:16.602Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:16.603Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:00:16.603Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:16.603Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:00:16.603Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:00:16.603Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:00:16.605Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.7249ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.7249ms"}} -[debug] [2026-04-13T00:00:16.605Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:00:16.605Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:16.605Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:16.605Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:22.409Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:00:22.409Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:22.410Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:00:22.409Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:22.410Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:00:22.410Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:22.411Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:00:22.411Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:00:22.411Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:00:22.412Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.3951ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.3951ms"}} -[debug] [2026-04-13T00:00:22.412Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:00:22.412Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:22.412Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:22.412Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:23.048Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:23.048Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:23.048Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:23.048Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:23.048Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:00:23.049Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:23.049Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:00:23.049Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:00:23.049Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:00:23.050Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.4773ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.4773ms"}} -[debug] [2026-04-13T00:00:23.051Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:00:23.051Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:23.051Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:23.051Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:29.489Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:29.489Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:00:29.489Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:00:29.489Z"],"workRunningCount":1} -[debug] [2026-04-13T00:00:29.489Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:00:29.490Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:00:29.490Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:00:29.490Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:00:29.490Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:00:29.492Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.2511ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.2511ms"}} -[debug] [2026-04-13T00:00:29.492Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:00:29.492Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:00:29.492Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:00:29.492Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.069Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:13.069Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.069Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:13.069Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.069Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:13.070Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:13.070Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:13.070Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:13.071Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:13.071Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:13.071Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:13.069Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.071Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:13.069Z","/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:13.071Z"],"workRunningCount":2} -[debug] [2026-04-13T00:05:13.071Z] Accepted request GET /mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4 --> asia-northeast3-kbo -[debug] [2026-04-13T00:05:13.072Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:13.072Z] [functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4"}} -[debug] [2026-04-13T00:05:13.072Z] [worker-pool] submitRequest(triggerId=asia-northeast3-kbo) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-kbo)"}} -[info] i functions: Beginning execution of "asia-northeast3-kbo" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Beginning execution of \"asia-northeast3-kbo\""}} -[debug] [2026-04-13T00:05:13.072Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY"}} -[debug] [2026-04-13T00:05:13.074Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 3.2608ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 3.2608ms"}} -[debug] [2026-04-13T00:05:13.074Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:13.074Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:13.074Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:13.074Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:13.071Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.080Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:13.080Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:13.071Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.080Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:13.071Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:13.080Z"],"workRunningCount":2} -[debug] [2026-04-13T00:05:13.080Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:13.080Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:13.080Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:13.080Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:13.081Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:13.082Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.2778ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.2778ms"}} -[debug] [2026-04-13T00:05:13.082Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:13.082Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:13.082Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:13.082Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:13.071Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.100Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-kbo" in 27.8505ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finished \"asia-northeast3-kbo\" in 27.8505ms"}} -[debug] [2026-04-13T00:05:13.100Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE"}} -[debug] [2026-04-13T00:05:13.101Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:13.101Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:13.101Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.299Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:13.299Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.300Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:13.299Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.300Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:13.300Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:13.300Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:13.300Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:13.301Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:13.302Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.5433ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.5433ms"}} -[debug] [2026-04-13T00:05:13.302Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:13.302Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:13.302Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:13.302Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.313Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:13.313Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.313Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:13.313Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.313Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:13.314Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:13.314Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:13.314Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:13.314Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:13.315Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.1884ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.1884ms"}} -[debug] [2026-04-13T00:05:13.315Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:13.315Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:13.315Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:13.315Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.728Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:13.728Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.728Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:13.728Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.728Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:13.729Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:13.729Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:13.729Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:13.729Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:13.730Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.3346ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.3346ms"}} -[debug] [2026-04-13T00:05:13.730Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:13.731Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:13.731Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:13.731Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.774Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:13.774Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:13.774Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:13.774Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:13.774Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:13.775Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:13.775Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:13.775Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:13.775Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:13.776Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.0664ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.0664ms"}} -[debug] [2026-04-13T00:05:13.776Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:13.776Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:13.776Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:13.776Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:14.568Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:14.568Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:14.568Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:14.568Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:14.568Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:14.569Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:14.569Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:14.569Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:14.569Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:14.570Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.2275ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.2275ms"}} -[debug] [2026-04-13T00:05:14.570Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:14.570Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:14.570Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:14.570Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:14.605Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:14.605Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:14.605Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:14.605Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:14.605Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:14.606Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:14.606Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:14.606Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:14.606Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:14.607Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.0241ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.0241ms"}} -[debug] [2026-04-13T00:05:14.607Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:14.607Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:14.607Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:14.607Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:17.299Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:17.299Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:17.299Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:17.299Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:17.299Z] Accepted request GET /mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4 --> asia-northeast3-kbo -[debug] [2026-04-13T00:05:17.299Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:17.299Z] [functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4"}} -[debug] [2026-04-13T00:05:17.299Z] [worker-pool] submitRequest(triggerId=asia-northeast3-kbo) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-kbo)"}} -[info] i functions: Beginning execution of "asia-northeast3-kbo" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Beginning execution of \"asia-northeast3-kbo\""}} -[debug] [2026-04-13T00:05:17.300Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY"}} -[debug] [2026-04-13T00:05:17.312Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:17.312Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:17.299Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:17.312Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:17.299Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:17.312Z"],"workRunningCount":2} -[debug] [2026-04-13T00:05:17.312Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:17.313Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:17.313Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:17.313Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:17.313Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:17.313Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:17.313Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:17.299Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:17.312Z"],"workRunningCount":2} -[debug] [2026-04-13T00:05:17.313Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:17.299Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:17.312Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:17.313Z"],"workRunningCount":3} -[debug] [2026-04-13T00:05:17.313Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:17.313Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:17.314Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:17.314Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:17.314Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:17.315Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.7353ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.7353ms"}} -[debug] [2026-04-13T00:05:17.315Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:17.315Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:17.315Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:17.315Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:17.299Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:17.313Z"],"workRunningCount":2} -[debug] [2026-04-13T00:05:17.315Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.3294ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.3294ms"}} -[debug] [2026-04-13T00:05:17.315Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:17.315Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:17.315Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:17.315Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:05:17.299Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:17.315Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-kbo" in 15.7336ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finished \"asia-northeast3-kbo\" in 15.7336ms"}} -[debug] [2026-04-13T00:05:17.316Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE"}} -[debug] [2026-04-13T00:05:17.316Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:17.316Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:17.316Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:17.578Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:17.578Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:17.578Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:17.578Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:17.578Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:17.578Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:17.578Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:17.578Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:17.578Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:17.579Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:17.579Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:17.578Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:17.579Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:17.578Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:17.579Z"],"workRunningCount":2} -[debug] [2026-04-13T00:05:17.579Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:17.579Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:17.579Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:17.579Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:17.579Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:17.580Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.3858ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.3858ms"}} -[debug] [2026-04-13T00:05:17.580Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:17.580Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:17.580Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:17.580Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:17.579Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:17.580Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1773ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1773ms"}} -[debug] [2026-04-13T00:05:17.581Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:17.581Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:17.581Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:17.581Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:18.019Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:18.019Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:18.019Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:18.019Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:18.019Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:18.019Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:18.020Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:18.020Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:18.020Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:18.021Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.3609ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.3609ms"}} -[debug] [2026-04-13T00:05:18.021Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:18.021Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:18.021Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:18.021Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:18.036Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:18.036Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:18.036Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:18.036Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:18.036Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:18.036Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:18.037Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:18.037Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:18.037Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:18.038Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 0.8937ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 0.8937ms"}} -[debug] [2026-04-13T00:05:18.038Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:18.038Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:18.038Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:18.038Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:18.862Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:18.862Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:18.862Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:18.862Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:18.862Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:18.862Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:18.862Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:18.862Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:18.863Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:18.864Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.41ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.41ms"}} -[debug] [2026-04-13T00:05:18.864Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:18.864Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:18.864Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:18.864Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:18.894Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:18.894Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:18.894Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:18.894Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:18.894Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:18.894Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:18.894Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:18.894Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:18.895Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:18.896Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.0673ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.0673ms"}} -[debug] [2026-04-13T00:05:18.896Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:18.896Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:18.896Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:18.896Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:20.499Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:20.499Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:20.499Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:20.499Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:20.499Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:20.499Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:20.500Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:20.500Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:20.500Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:20.501Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1987ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1987ms"}} -[debug] [2026-04-13T00:05:20.501Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:20.501Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:20.501Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:20.501Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:20.538Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:20.538Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:20.538Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:20.538Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:20.538Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:20.538Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:20.538Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:20.538Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:20.538Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:20.539Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.1158ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.1158ms"}} -[debug] [2026-04-13T00:05:20.539Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:20.540Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:20.540Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:20.540Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:23.747Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:23.747Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:23.747Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:23.747Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:23.747Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:23.748Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:23.748Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:23.748Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:23.748Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:23.749Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.3198ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.3198ms"}} -[debug] [2026-04-13T00:05:23.749Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:23.749Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:23.750Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:23.750Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:23.763Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:23.763Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:23.763Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:23.763Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:23.763Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:23.763Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:23.763Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:23.763Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:23.763Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:23.764Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 0.927ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 0.927ms"}} -[debug] [2026-04-13T00:05:23.764Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:23.764Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:23.764Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:23.764Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:30.187Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:30.187Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:30.187Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:30.187Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:30.187Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:30.188Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:30.189Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:30.189Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:30.189Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:30.190Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.3343ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.3343ms"}} -[debug] [2026-04-13T00:05:30.190Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:30.190Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:30.190Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:30.190Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:30.202Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:30.202Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:30.202Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:30.202Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:30.202Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:30.203Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:30.203Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:30.203Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:30.203Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:30.204Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.2217ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.2217ms"}} -[debug] [2026-04-13T00:05:30.204Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:30.204Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:30.204Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:30.204Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:36.650Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:36.650Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:36.650Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:36.650Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:36.650Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:36.651Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:36.652Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:36.652Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:36.652Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:36.653Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:36.653Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:36.650Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:36.653Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:36.650Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:36.653Z"],"workRunningCount":2} -[debug] [2026-04-13T00:05:36.653Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:36.654Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:36.654Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:36.654Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:36.654Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:36.655Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 2.7965ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 2.7965ms"}} -[debug] [2026-04-13T00:05:36.655Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:36.655Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:36.655Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:36.655Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:36.653Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:36.655Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1551ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1551ms"}} -[debug] [2026-04-13T00:05:36.655Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:36.655Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:36.655Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:36.655Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:43.106Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:43.106Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:43.106Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:43.106Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:43.106Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:43.107Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:43.107Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:43.107Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:43.107Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:43.108Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.1379ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.1379ms"}} -[debug] [2026-04-13T00:05:43.108Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:43.108Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:43.108Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:43.108Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:43.115Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:43.115Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:43.115Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:43.115Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:43.115Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:43.116Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:43.116Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:43.116Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:43.116Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:43.117Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 0.9888ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 0.9888ms"}} -[debug] [2026-04-13T00:05:43.118Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:43.118Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:43.118Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:43.118Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:49.563Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:49.563Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:49.564Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:49.563Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:49.564Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:49.565Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:49.565Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:49.565Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:49.565Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:49.567Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.324ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.324ms"}} -[debug] [2026-04-13T00:05:49.567Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:49.567Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:49.567Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:49.567Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:49.573Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:49.573Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:49.573Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:49.573Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:49.573Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:49.574Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:49.574Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:49.574Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:49.574Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:49.575Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1997ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1997ms"}} -[debug] [2026-04-13T00:05:49.575Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:49.575Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:49.575Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:49.575Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:56.061Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:56.061Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:56.061Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:05:56.061Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:56.061Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:05:56.062Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:56.062Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:05:56.062Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:05:56.063Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:05:56.064Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.2378ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.2378ms"}} -[debug] [2026-04-13T00:05:56.064Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:05:56.064Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:56.064Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:56.064Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:56.104Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:56.104Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:05:56.104Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:05:56.104Z"],"workRunningCount":1} -[debug] [2026-04-13T00:05:56.104Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:05:56.105Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:05:56.105Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:05:56.105Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:05:56.105Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:05:56.106Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1669ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1669ms"}} -[debug] [2026-04-13T00:05:56.106Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:05:56.106Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:05:56.106Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:05:56.106Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:20.449Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.449Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:20.449Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.449Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:20.449Z] Accepted request GET /mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4 --> asia-northeast3-kbo -[debug] [2026-04-13T00:06:20.451Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:20.451Z] [functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4"}} -[debug] [2026-04-13T00:06:20.451Z] [worker-pool] submitRequest(triggerId=asia-northeast3-kbo) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-kbo)"}} -[info] i functions: Beginning execution of "asia-northeast3-kbo" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Beginning execution of \"asia-northeast3-kbo\""}} -[debug] [2026-04-13T00:06:20.451Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY"}} -[debug] [2026-04-13T00:06:20.456Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:20.456Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.449Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:20.456Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.449Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:20.456Z"],"workRunningCount":2} -[debug] [2026-04-13T00:06:20.456Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:20.457Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:20.457Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:20.457Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:20.458Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:20.458Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:20.458Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.449Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:20.456Z"],"workRunningCount":2} -[debug] [2026-04-13T00:06:20.458Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.449Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:20.456Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:20.458Z"],"workRunningCount":3} -[debug] [2026-04-13T00:06:20.458Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:20.459Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:20.459Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:20.459Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:20.459Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:20.460Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 2.5115ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 2.5115ms"}} -[debug] [2026-04-13T00:06:20.460Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:20.460Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:20.460Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:20.461Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.449Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:20.458Z"],"workRunningCount":2} -[debug] [2026-04-13T00:06:20.461Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.5899ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.5899ms"}} -[debug] [2026-04-13T00:06:20.461Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:20.461Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:20.461Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:20.461Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.449Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:20.467Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-kbo" in 16.4582ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finished \"asia-northeast3-kbo\" in 16.4582ms"}} -[debug] [2026-04-13T00:06:20.468Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE"}} -[debug] [2026-04-13T00:06:20.468Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:20.468Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:20.468Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:20.543Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.543Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:20.543Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:06:20.543Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:20.543Z] Accepted request GET /mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4 --> asia-northeast3-kbo -[debug] [2026-04-13T00:06:20.544Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:20.544Z] [functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4"}} -[debug] [2026-04-13T00:06:20.544Z] [worker-pool] submitRequest(triggerId=asia-northeast3-kbo) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-kbo)"}} -[info] i functions: Beginning execution of "asia-northeast3-kbo" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Beginning execution of \"asia-northeast3-kbo\""}} -[debug] [2026-04-13T00:06:20.544Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY"}} -[debug] [2026-04-13T00:06:20.560Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-kbo" in 15.8885ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finished \"asia-northeast3-kbo\" in 15.8885ms"}} -[debug] [2026-04-13T00:06:20.560Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE"}} -[debug] [2026-04-13T00:06:20.561Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:20.561Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:20.561Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:20.721Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:20.721Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:20.721Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:20.721Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:20.721Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:20.722Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:20.722Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:20.722Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:20.722Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:20.723Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.3876ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.3876ms"}} -[debug] [2026-04-13T00:06:20.724Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:20.724Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:20.724Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:20.724Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:20.724Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:20.724Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:20.724Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:20.724Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:20.724Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:20.724Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:20.724Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:20.724Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:20.724Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:20.725Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 0.9421ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 0.9421ms"}} -[debug] [2026-04-13T00:06:20.725Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:20.725Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:20.725Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:20.725Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:21.149Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:21.149Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:21.149Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:21.149Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:21.149Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:21.149Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:21.149Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:21.149Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:21.150Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:21.150Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:21.150Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:21.149Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:21.150Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:21.149Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:21.150Z"],"workRunningCount":2} -[debug] [2026-04-13T00:06:21.150Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:21.150Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:21.150Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:21.150Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:21.150Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:21.151Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.4123ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.4123ms"}} -[debug] [2026-04-13T00:06:21.151Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:21.151Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:21.151Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:21.151Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:21.150Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:21.151Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.0466ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.0466ms"}} -[debug] [2026-04-13T00:06:21.152Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:21.152Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:21.152Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:21.152Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:21.969Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:21.969Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:21.969Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:21.969Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:21.969Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:21.970Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:21.970Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:21.970Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:21.970Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:21.971Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:21.971Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:21.969Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:21.971Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:21.969Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:21.971Z"],"workRunningCount":2} -[debug] [2026-04-13T00:06:21.971Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:21.971Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:21.971Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:21.971Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:21.971Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:21.972Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 2.0467ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 2.0467ms"}} -[debug] [2026-04-13T00:06:21.972Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:21.972Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:21.972Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:21.972Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:21.971Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:21.972Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.044ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.044ms"}} -[debug] [2026-04-13T00:06:21.972Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:21.973Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:21.973Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:21.973Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:23.604Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:23.604Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:23.604Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:23.604Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:23.604Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:23.605Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:23.605Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:23.605Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:23.605Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:23.606Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1062ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1062ms"}} -[debug] [2026-04-13T00:06:23.606Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:23.606Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:23.606Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:23.606Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:23.606Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:23.606Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:23.606Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:23.606Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:23.606Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:23.607Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:23.607Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:23.607Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:23.607Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:23.608Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 0.9691ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 0.9691ms"}} -[debug] [2026-04-13T00:06:23.608Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:23.608Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:23.608Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:23.608Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:27.147Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:27.147Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:27.147Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:27.147Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:27.147Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:27.147Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:27.147Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:27.147Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:27.148Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:27.148Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:27.148Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:27.147Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:27.148Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:27.147Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:27.148Z"],"workRunningCount":2} -[debug] [2026-04-13T00:06:27.148Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:27.148Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:27.149Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:27.149Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:27.149Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:27.149Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.5813ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.5813ms"}} -[debug] [2026-04-13T00:06:27.149Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:27.149Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:27.149Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:27.149Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:27.148Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:27.150Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.0804ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.0804ms"}} -[debug] [2026-04-13T00:06:27.150Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:27.150Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:27.150Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:27.150Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:33.585Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:33.585Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:33.586Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:33.585Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:33.586Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:33.587Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:33.587Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:33.587Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:33.587Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:33.588Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.3012ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.3012ms"}} -[debug] [2026-04-13T00:06:33.588Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:33.588Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:33.588Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:33.588Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:33.590Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:33.590Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:33.590Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:33.590Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:33.590Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:33.591Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:33.591Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:33.591Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:33.591Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:33.592Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 0.9282ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 0.9282ms"}} -[debug] [2026-04-13T00:06:33.592Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:33.592Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:33.592Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:33.592Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:40.045Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:40.045Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:40.045Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:40.045Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:40.045Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:40.047Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:40.047Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:40.047Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:40.047Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:40.048Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.1724ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.1724ms"}} -[debug] [2026-04-13T00:06:40.048Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:40.048Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:40.048Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:40.048Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:40.055Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:40.055Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:40.055Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:40.055Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:40.055Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:40.056Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:40.056Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:40.056Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:40.056Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:40.057Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.0751ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.0751ms"}} -[debug] [2026-04-13T00:06:40.057Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:40.057Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:40.057Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:40.057Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:46.504Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:46.504Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:46.504Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:46.504Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:46.504Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:46.505Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:46.505Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:46.505Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:46.505Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:46.507Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.2163ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.2163ms"}} -[debug] [2026-04-13T00:06:46.507Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:46.507Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:46.507Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:46.507Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:46.515Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:46.515Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:46.515Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:46.515Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:46.515Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:46.515Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:46.516Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:46.516Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:46.516Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:46.517Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.0528ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.0528ms"}} -[debug] [2026-04-13T00:06:46.517Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:46.517Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:46.517Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:46.517Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:52.944Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:52.944Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:52.944Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:52.944Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:52.944Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:52.945Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:52.945Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:52.945Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:52.945Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:52.947Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.4173ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.4173ms"}} -[debug] [2026-04-13T00:06:52.947Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:52.947Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:52.947Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:52.947Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:52.978Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:52.978Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:52.978Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:52.978Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:52.978Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:52.979Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:52.979Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:52.979Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:52.979Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:52.980Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1266ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1266ms"}} -[debug] [2026-04-13T00:06:52.980Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:52.980Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:52.981Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:52.981Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:59.383Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:59.383Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:59.383Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:06:59.383Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:59.383Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:06:59.384Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:59.384Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:06:59.384Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:06:59.384Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:06:59.386Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.4093ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.4093ms"}} -[debug] [2026-04-13T00:06:59.386Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:06:59.386Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:59.386Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:59.386Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:59.410Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:59.410Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:06:59.410Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:06:59.410Z"],"workRunningCount":1} -[debug] [2026-04-13T00:06:59.410Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:06:59.411Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:06:59.411Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:06:59.411Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:06:59.411Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:06:59.412Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1723ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1723ms"}} -[debug] [2026-04-13T00:06:59.412Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:06:59.412Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:06:59.412Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:06:59.412Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:28.832Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.832Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:28.832Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.832Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:28.832Z] Accepted request GET /mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4 --> asia-northeast3-kbo -[debug] [2026-04-13T00:07:28.833Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:28.833Z] [functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4"}} -[debug] [2026-04-13T00:07:28.833Z] [worker-pool] submitRequest(triggerId=asia-northeast3-kbo) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-kbo)"}} -[info] i functions: Beginning execution of "asia-northeast3-kbo" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Beginning execution of \"asia-northeast3-kbo\""}} -[debug] [2026-04-13T00:07:28.834Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY"}} -[debug] [2026-04-13T00:07:28.837Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:28.837Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.832Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:28.837Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.832Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:28.837Z"],"workRunningCount":2} -[debug] [2026-04-13T00:07:28.837Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:28.838Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:28.838Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:28.838Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:28.839Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:28.839Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:28.839Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.832Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:28.837Z"],"workRunningCount":2} -[debug] [2026-04-13T00:07:28.839Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.832Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:28.837Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:28.839Z"],"workRunningCount":3} -[debug] [2026-04-13T00:07:28.839Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:28.840Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:28.840Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:28.840Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:28.840Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:28.841Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1747ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1747ms"}} -[debug] [2026-04-13T00:07:28.841Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:28.841Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:28.841Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:28.841Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.832Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:28.837Z"],"workRunningCount":2} -[debug] [2026-04-13T00:07:28.842Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 3.1091ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 3.1091ms"}} -[debug] [2026-04-13T00:07:28.842Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:28.842Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:28.842Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:28.842Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.832Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:28.845Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-kbo" in 11.0578ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finished \"asia-northeast3-kbo\" in 11.0578ms"}} -[debug] [2026-04-13T00:07:28.845Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE"}} -[debug] [2026-04-13T00:07:28.845Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:28.845Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:28.845Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:28.929Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.929Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:28.929Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/kbo/schedule-2026-04-13T00:07:28.929Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:28.929Z] Accepted request GET /mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4 --> asia-northeast3-kbo -[debug] [2026-04-13T00:07:28.930Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:28.930Z] [functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/kbo/schedule?year=2026&month=4, mapping to path=/schedule?year=2026&month=4"}} -[debug] [2026-04-13T00:07:28.930Z] [worker-pool] submitRequest(triggerId=asia-northeast3-kbo) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-kbo)"}} -[info] i functions: Beginning execution of "asia-northeast3-kbo" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Beginning execution of \"asia-northeast3-kbo\""}} -[debug] [2026-04-13T00:07:28.930Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: BUSY"}} -[debug] [2026-04-13T00:07:28.951Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-kbo" in 20.357ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finished \"asia-northeast3-kbo\" in 20.357ms"}} -[debug] [2026-04-13T00:07:28.951Z] [worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"[worker-asia-northeast3-kbo-3f128ef3-ac4b-4713-99d2-6cf0f9972135]: IDLE"}} -[debug] [2026-04-13T00:07:28.951Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:28.951Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-kbo"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:28.951Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:29.108Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:29.108Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:29.108Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:29.108Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:29.108Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:29.108Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:29.108Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:29.108Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:29.108Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:29.109Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:29.109Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:29.108Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:29.109Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:29.108Z","/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:29.109Z"],"workRunningCount":2} -[debug] [2026-04-13T00:07:29.109Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:29.109Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:29.109Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:29.109Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:29.109Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:29.110Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.4325ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.4325ms"}} -[debug] [2026-04-13T00:07:29.110Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:29.110Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:29.110Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:29.110Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:29.109Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:29.111Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.2817ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.2817ms"}} -[debug] [2026-04-13T00:07:29.111Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:29.111Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:29.111Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:29.111Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:29.537Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:29.537Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:29.537Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:29.537Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:29.537Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:29.537Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:29.537Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:29.537Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:29.538Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:29.539Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.0596ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.0596ms"}} -[debug] [2026-04-13T00:07:29.539Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:29.539Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:29.539Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:29.539Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:29.539Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:29.539Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:29.539Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:29.539Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:29.539Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:29.539Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:29.539Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:29.539Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:29.540Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:29.541Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1491ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1491ms"}} -[debug] [2026-04-13T00:07:29.541Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:29.541Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:29.541Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:29.541Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:30.362Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:30.362Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:30.362Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:30.362Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:30.362Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:30.363Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:30.363Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:30.363Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:30.363Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:30.364Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1329ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1329ms"}} -[debug] [2026-04-13T00:07:30.364Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:30.364Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:30.364Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:30.364Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:30.370Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:30.370Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:30.370Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:30.370Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:30.370Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:30.370Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:30.370Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:30.370Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:30.370Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:30.372Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.1941ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.1941ms"}} -[debug] [2026-04-13T00:07:30.372Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:30.372Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:30.372Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:30.372Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:31.993Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:31.993Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:31.993Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:31.993Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:31.993Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:31.994Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:31.994Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:31.994Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:31.994Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:31.995Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1318ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1318ms"}} -[debug] [2026-04-13T00:07:31.995Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:31.995Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:31.995Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:31.995Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:32.047Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:32.047Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:32.047Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:32.047Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:32.047Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:32.047Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:32.047Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:32.047Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:32.048Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:32.049Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.0093ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.0093ms"}} -[debug] [2026-04-13T00:07:32.049Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:32.049Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:32.049Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:32.049Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:35.223Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:35.223Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:35.223Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:35.223Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:35.223Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:35.224Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:35.224Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:35.224Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:35.224Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:35.225Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.0257ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.0257ms"}} -[debug] [2026-04-13T00:07:35.225Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:35.225Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:35.225Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:35.225Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:35.263Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:35.263Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:35.264Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:35.263Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:35.264Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:35.264Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:35.264Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:35.264Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:35.264Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:35.265Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.0916ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.0916ms"}} -[debug] [2026-04-13T00:07:35.265Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:35.265Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:35.265Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:35.265Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:41.676Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:41.676Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:41.676Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:41.676Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:41.676Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:41.677Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:41.677Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:41.677Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:41.678Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:41.679Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.2136ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.2136ms"}} -[debug] [2026-04-13T00:07:41.679Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:41.679Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:41.679Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:41.679Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:41.694Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:41.694Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:41.694Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:41.694Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:41.694Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:41.694Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:41.694Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:41.694Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:41.695Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:41.696Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 0.974ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 0.974ms"}} -[debug] [2026-04-13T00:07:41.696Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:41.696Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:41.696Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:41.696Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:48.131Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:48.131Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:48.131Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:48.131Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:48.131Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:48.132Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:48.132Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:48.132Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:48.132Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:48.133Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.0474ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.0474ms"}} -[debug] [2026-04-13T00:07:48.134Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:48.134Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:48.134Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:48.134Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:48.149Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:48.149Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:48.149Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:48.149Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:48.149Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:48.150Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:48.150Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:48.150Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:48.150Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:48.151Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.1108ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.1108ms"}} -[debug] [2026-04-13T00:07:48.151Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:48.151Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:48.151Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:48.151Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:54.578Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:54.578Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:54.578Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:07:54.578Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:54.578Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:07:54.579Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:54.579Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:07:54.579Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:07:54.580Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:07:54.581Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.1723ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.1723ms"}} -[debug] [2026-04-13T00:07:54.581Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:07:54.581Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:54.581Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:54.581Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:54.582Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:54.582Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:07:54.582Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:07:54.582Z"],"workRunningCount":1} -[debug] [2026-04-13T00:07:54.582Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:07:54.582Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:07:54.582Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:07:54.582Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:07:54.582Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:07:54.583Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 0.9499ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 0.9499ms"}} -[debug] [2026-04-13T00:07:54.584Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:07:54.584Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:07:54.584Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:07:54.584Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:08:01.027Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:08:01.027Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:08:01.027Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:08:01.027Z"],"workRunningCount":1} -[debug] [2026-04-13T00:08:01.027Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:08:01.028Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:08:01.028Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:08:01.028Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:08:01.029Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:08:01.029Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:08:01.029Z"],"queueLength":1,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:08:01.027Z"],"workRunningCount":1} -[debug] [2026-04-13T00:08:01.029Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:08:01.027Z","/mmday-panit/asia-northeast3/prediction-2026-04-13T00:08:01.029Z"],"workRunningCount":2} -[debug] [2026-04-13T00:08:01.029Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:08:01.030Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:08:01.030Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:08:01.030Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:08:01.030Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:08:01.031Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 2.1792ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 2.1792ms"}} -[debug] [2026-04-13T00:08:01.031Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:08:01.031Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:08:01.031Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:08:01.031Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:08:01.029Z"],"workRunningCount":1} -[debug] [2026-04-13T00:08:01.031Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.156ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.156ms"}} -[debug] [2026-04-13T00:08:01.031Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:08:01.031Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:08:01.032Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:08:01.032Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:08:07.476Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:08:07.476Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:08:07.476Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/prediction-2026-04-13T00:08:07.476Z"],"workRunningCount":1} -[debug] [2026-04-13T00:08:07.476Z] Accepted request GET /mmday-panit/asia-northeast3/prediction?date=2026-04-13 --> asia-northeast3-prediction -[debug] [2026-04-13T00:08:07.477Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:08:07.478Z] [functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13 {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/prediction?date=2026-04-13, mapping to path=/?date=2026-04-13"}} -[debug] [2026-04-13T00:08:07.478Z] [worker-pool] submitRequest(triggerId=asia-northeast3-prediction) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-prediction)"}} -[info] i functions: Beginning execution of "asia-northeast3-prediction" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Beginning execution of \"asia-northeast3-prediction\""}} -[debug] [2026-04-13T00:08:07.478Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: BUSY"}} -[debug] [2026-04-13T00:08:07.479Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-prediction" in 1.3179ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finished \"asia-northeast3-prediction\" in 1.3179ms"}} -[debug] [2026-04-13T00:08:07.479Z] [worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"[worker-asia-northeast3-prediction-f1c03d80-5c28-470d-ac9f-e901e16ec1bc]: IDLE"}} -[debug] [2026-04-13T00:08:07.479Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:08:07.479Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-prediction"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:08:07.479Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:08:07.481Z] [work-queue] {"queuedWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:08:07.481Z"],"queueLength":1,"runningWork":[],"workRunningCount":0} -[debug] [2026-04-13T00:08:07.481Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":["/mmday-panit/asia-northeast3/stats-2026-04-13T00:08:07.481Z"],"workRunningCount":1} -[debug] [2026-04-13T00:08:07.481Z] Accepted request GET /mmday-panit/asia-northeast3/stats?period=current --> asia-northeast3-stats -[debug] [2026-04-13T00:08:07.482Z] [functions] Runtime ready! Sending request! {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Runtime ready! Sending request!"}} -[debug] [2026-04-13T00:08:07.482Z] [functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current {"metadata":{"emulator":{"name":"functions"},"message":"[functions] Got req.url=/mmday-panit/asia-northeast3/stats?period=current, mapping to path=/?period=current"}} -[debug] [2026-04-13T00:08:07.482Z] [worker-pool] submitRequest(triggerId=asia-northeast3-stats) {"metadata":{"emulator":{"name":"functions"},"message":"[worker-pool] submitRequest(triggerId=asia-northeast3-stats)"}} -[info] i functions: Beginning execution of "asia-northeast3-stats" {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Beginning execution of \"asia-northeast3-stats\""}} -[debug] [2026-04-13T00:08:07.482Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: BUSY"}} -[debug] [2026-04-13T00:08:07.483Z] Finishing up request with event=pause {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=pause"}} -[info] i functions: Finished "asia-northeast3-stats" in 1.0295ms {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finished \"asia-northeast3-stats\" in 1.0295ms"}} -[debug] [2026-04-13T00:08:07.483Z] [worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"[worker-asia-northeast3-stats-7eb5440a-13e4-4039-9b90-13495e9d86e7]: IDLE"}} -[debug] [2026-04-13T00:08:07.484Z] Finishing up request with event=finish {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=finish"}} -[debug] [2026-04-13T00:08:07.484Z] Finishing up request with event=close {"metadata":{"emulator":{"name":"functions"},"function":{"name":"asia-northeast3-stats"},"extension":{},"message":"Finishing up request with event=close"}} -[debug] [2026-04-13T00:08:07.484Z] [work-queue] {"queuedWork":[],"queueLength":0,"runningWork":[],"workRunningCount":0} diff --git a/firestore-debug.log b/firestore-debug.log index e69de29..2824cdb 100644 --- a/firestore-debug.log +++ b/firestore-debug.log @@ -0,0 +1,127 @@ +WARNING: A terminally deprecated method in sun.misc.Unsafe has been called +WARNING: sun.misc.Unsafe::allocateMemory has been called by io.netty.util.internal.PlatformDependent0$2 (file:/C:/Users/%ec%9c%a4%ec%a0%95%eb%af%bc/.cache/firebase/emulators/cloud-firestore-emulator-v1.20.4.jar) +WARNING: Please consider reporting this to the maintainers of class io.netty.util.internal.PlatformDependent0$2 +WARNING: sun.misc.Unsafe::allocateMemory will be removed in a future release +Apr 13, 2026 12:30:04 PM com.google.cloud.datastore.emulator.firestore.websocket.WebSocketServer start +INFO: Started WebSocket server on ws://0.0.0.0:9150 + +API endpoint: http://0.0.0.0:8080 +Database Edition: STANDARD +Database Mode: CLOUD_FIRESTORE + +If you are using a library that supports the FIRESTORE_EMULATOR_HOST environment variable, run: + + export FIRESTORE_EMULATOR_HOST=0.0.0.0:8080 + +If you are running a Firestore in Datastore Mode project, run: + + export DATASTORE_EMULATOR_HOST=0.0.0.0:8080 + +Note: Support for Datastore Mode is in preview. If you encounter any bugs please file at https://github.com/firebase/firebase-tools/issues. +Dev App Server is now running. + +Apr 13, 2026 12:30:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead +INFO: Detected HTTP/2 connection. +Apr 13, 2026 12:30:11 PM io.netty.channel.DefaultChannelPipeline onUnhandledInboundException +WARNING: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:398) + at java.base/sun.nio.ch.SocketChannelImpl.implRead(SocketChannelImpl.java:430) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:488) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1516) + +Apr 13, 2026 12:30:11 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead +INFO: Detected HTTP/2 connection. +Apr 13, 2026 12:30:12 PM io.netty.channel.DefaultChannelPipeline onUnhandledInboundException +WARNING: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:398) + at java.base/sun.nio.ch.SocketChannelImpl.implRead(SocketChannelImpl.java:430) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:488) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1516) + +Apr 13, 2026 12:30:13 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead +INFO: Detected HTTP/2 connection. +Apr 13, 2026 12:30:14 PM io.netty.channel.DefaultChannelPipeline onUnhandledInboundException +WARNING: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:398) + at java.base/sun.nio.ch.SocketChannelImpl.implRead(SocketChannelImpl.java:430) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:488) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1516) + +Apr 13, 2026 12:30:14 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead +INFO: Detected HTTP/2 connection. +Apr 13, 2026 12:30:14 PM io.netty.channel.DefaultChannelPipeline onUnhandledInboundException +WARNING: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:398) + at java.base/sun.nio.ch.SocketChannelImpl.implRead(SocketChannelImpl.java:430) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:488) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1516) + +Apr 13, 2026 12:30:15 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead +INFO: Detected HTTP/2 connection. +Apr 13, 2026 12:30:15 PM io.netty.channel.DefaultChannelPipeline onUnhandledInboundException +WARNING: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:398) + at java.base/sun.nio.ch.SocketChannelImpl.implRead(SocketChannelImpl.java:430) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:488) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1516) + diff --git a/src/handlers/authHandlers.ts b/src/handlers/authHandlers.ts deleted file mode 100644 index c772e3a..0000000 --- a/src/handlers/authHandlers.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { onRequest } from "firebase-functions/https"; -import { requireAuth } from "../middleware/auth.js"; -import { sendError } from "../middleware/errors.js"; -import { register } from "../services/authService.js"; - -export const auth = onRequest(async (req, res) => { - const path = req.path.replace(/^\/+|\/+$/g, "").split("/").pop() ?? ""; - - try { - if (path === "register" && req.method === "POST") { - const uid = await requireAuth(req); - const result = await register(uid, req.body ?? {}); - res.status(result.created ? 201 : 200).json(result); - return; - } - res.status(404).json({ error: `Unknown path: /${path}` }); - } catch (err) { - sendError(res, err); - } -}); diff --git a/src/handlers/userHandlers.ts b/src/handlers/userHandlers.ts new file mode 100644 index 0000000..26d1d0d --- /dev/null +++ b/src/handlers/userHandlers.ts @@ -0,0 +1,24 @@ +import { onRequest } from "firebase-functions/https"; +import { requireAuth, requireAuthToken } from "../middleware/auth.js"; +import { sendError } from "../middleware/errors.js"; +import { createMe, getMe } from "../services/userService.js"; + +export const user = onRequest(async (req, res) => { + try { + if (req.method === "GET") { + const uid = await requireAuth(req); + const u = await getMe(uid); + res.status(200).json({ user: { uid, ...u } }); + return; + } + if (req.method === "POST") { + const token = await requireAuthToken(req); + const u = await createMe(token, req.body ?? {}); + res.status(201).json({ user: { uid: token.uid, ...u } }); + return; + } + res.status(405).json({ error: `method ${req.method} not allowed` }); + } catch (err) { + sendError(res, err); + } +}); diff --git a/src/index.ts b/src/index.ts index 45fea2a..05dad63 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,7 @@ import "./firebase"; setGlobalOptions({ maxInstances: 10, region: "asia-northeast3" }); export { kbo } from "./handlers/kboHandlers"; -export { auth } from "./handlers/authHandlers"; +export { user } from "./handlers/userHandlers"; export { prediction } from "./handlers/predictionHandlers"; export { stats } from "./handlers/statsHandlers"; export { admin } from "./handlers/adminHandlers"; diff --git a/src/middleware/auth.ts b/src/middleware/auth.ts index af0f945..3e98ed6 100644 --- a/src/middleware/auth.ts +++ b/src/middleware/auth.ts @@ -1,8 +1,9 @@ import type { Request } from "firebase-functions/https"; +import type { DecodedIdToken } from "firebase-admin/auth"; import { auth } from "../firebase.js"; import { HttpError } from "./errors.js"; -export async function requireAuth(req: Request): Promise { +export async function requireAuthToken(req: Request): Promise { const header = req.get("authorization") ?? req.get("Authorization"); if (!header || !header.startsWith("Bearer ")) { throw new HttpError(401, "Missing Bearer token"); @@ -11,9 +12,12 @@ export async function requireAuth(req: Request): Promise { if (!token) throw new HttpError(401, "Empty token"); try { - const decoded = await auth.verifyIdToken(token); - return decoded.uid; + return await auth.verifyIdToken(token); } catch { throw new HttpError(401, "Invalid token"); } } + +export async function requireAuth(req: Request): Promise { + return (await requireAuthToken(req)).uid; +} diff --git a/src/middleware/errors.ts b/src/middleware/errors.ts index acb8408..35b3037 100644 --- a/src/middleware/errors.ts +++ b/src/middleware/errors.ts @@ -1,14 +1,21 @@ import type express from "express"; export class HttpError extends Error { - constructor(public status: number, message: string) { + constructor( + public status: number, + message: string, + public code?: string + ) { super(message); } } export function sendError(res: express.Response, err: unknown): void { if (err instanceof HttpError) { - res.status(err.status).json({ error: err.message }); + const body = err.code + ? { error: err.code, message: err.message } + : { error: err.message }; + res.status(err.status).json(body); return; } const message = err instanceof Error ? err.message : String(err); diff --git a/src/repositories/userRepository.ts b/src/repositories/userRepository.ts index 1f3cd4d..1551ed2 100644 --- a/src/repositories/userRepository.ts +++ b/src/repositories/userRepository.ts @@ -1,6 +1,6 @@ import { FieldValue } from "firebase-admin/firestore"; import { firestore } from "../firebase.js"; -import type { User, Provider } from "../types/panit.js"; +import type { KnowledgeLevel, Provider, TeamCode, User } from "../types/panit.js"; const COLLECTION = "users"; @@ -9,6 +9,8 @@ export interface RegisterInput { email: string; photoUrl?: string; provider: Provider; + favoriteTeamCode: TeamCode; + knowledgeLevel: KnowledgeLevel; } /** @@ -25,31 +27,16 @@ export async function getUser(uid: string): Promise { /** * 신규 유저 문서를 생성한다. `createdAt`은 서버 타임스탬프로 기록되며, * 같은 UID가 있으면 전체 덮어쓴다(`merge: false`). - * - * @param uid - Firebase Auth UID - * @param input - 생성에 필요한 사용자 정보 */ export async function createUser(uid: string, input: RegisterInput): Promise { const doc: Record = { displayName: input.displayName, email: input.email, provider: input.provider, + favoriteTeamCode: input.favoriteTeamCode, + knowledgeLevel: input.knowledgeLevel, createdAt: FieldValue.serverTimestamp(), }; if (input.photoUrl) doc.photoUrl = input.photoUrl; await firestore.collection(COLLECTION).doc(uid).set(doc, { merge: false }); } - -/** - * 유저가 없으면 새로 생성하고, 있으면 그대로 둔다. - * - * @param uid - Firebase Auth UID - * @param input - 신규 생성 시 사용할 정보 - * @returns 신규 생성했으면 `true`, 기존 유저라 스킵했으면 `false`. - */ -export async function upsertUser(uid: string, input: RegisterInput): Promise { - const existing = await getUser(uid); - if (existing) return false; - await createUser(uid, input); - return true; -} diff --git a/src/services/authService.ts b/src/services/authService.ts deleted file mode 100644 index b0abbf4..0000000 --- a/src/services/authService.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { HttpError } from "../middleware/errors.js"; -import { upsertUser, type RegisterInput } from "../repositories/userRepository.js"; -import type { Provider } from "../types/panit.js"; - -const VALID_PROVIDERS: readonly Provider[] = ["google", "apple"]; - -export async function register( - uid: string, - body: Partial & { provider?: string } -): Promise<{ created: boolean }> { - if (!body.displayName || typeof body.displayName !== "string") { - throw new HttpError(400, "displayName required"); - } - if (!body.email || typeof body.email !== "string") { - throw new HttpError(400, "email required"); - } - if (!body.provider || !VALID_PROVIDERS.includes(body.provider as Provider)) { - throw new HttpError(400, `provider must be one of: ${VALID_PROVIDERS.join(", ")}`); - } - const created = await upsertUser(uid, { - displayName: body.displayName, - email: body.email, - photoUrl: body.photoUrl, - provider: body.provider as Provider, - }); - return { created }; -} diff --git a/src/services/userService.ts b/src/services/userService.ts new file mode 100644 index 0000000..9aa9e9a --- /dev/null +++ b/src/services/userService.ts @@ -0,0 +1,117 @@ +import type { DecodedIdToken } from "firebase-admin/auth"; +import { HttpError } from "../middleware/errors.js"; +import { + createUser, + getUser, +} from "../repositories/userRepository.js"; +import { + KnowledgeLevel, + TeamCode, + type Provider, + type User, +} from "../types/panit.js"; + +const TEAM_CODE_VALUES = Object.values(TeamCode); +const KNOWLEDGE_LEVEL_VALUES = Object.values(KnowledgeLevel); + +function parseEnum( + field: string, + value: unknown, + allowed: readonly T[] +): T { + if (typeof value !== "string" || !allowed.includes(value as T)) { + throw new HttpError( + 400, + `${field} must be one of: ${allowed.join(", ")}`, + "INVALID_INPUT" + ); + } + return value as T; +} + +function parseDisplayName(value: unknown): string { + if (typeof value !== "string") { + throw new HttpError(400, "displayName must be a string", "INVALID_INPUT"); + } + if (value.length < 1 || value.length > 10) { + throw new HttpError( + 400, + "displayName length must be 1~10", + "INVALID_INPUT" + ); + } + return value; +} + +function providerFromToken(token: DecodedIdToken): Provider { + const raw = token.firebase?.sign_in_provider; + if (raw === "google.com") return "google"; + if (raw === "apple.com") return "apple"; + throw new HttpError( + 400, + `unsupported sign-in provider: ${raw}`, + "INVALID_INPUT" + ); +} + +/** + * 현재 로그인한 유저 문서를 조회한다. 없으면 404 + `USER_NOT_FOUND`. + */ +export async function getMe(uid: string): Promise { + const user = await getUser(uid); + if (!user) { + throw new HttpError(404, "user not found", "USER_NOT_FOUND"); + } + return user; +} + +export interface CreateMeBody { + displayName?: unknown; + favoriteTeamCode?: unknown; + knowledgeLevel?: unknown; +} + +/** + * 온보딩 완료 시 유저 문서를 생성한다. 이미 존재하면 409 + `USER_ALREADY_EXISTS`. + * email/photoUrl/provider는 Firebase ID Token에서 추출한다. + */ +export async function createMe( + token: DecodedIdToken, + body: CreateMeBody +): Promise { + const existing = await getUser(token.uid); + if (existing) { + throw new HttpError(409, "user already exists", "USER_ALREADY_EXISTS"); + } + + const displayName = parseDisplayName(body.displayName); + const favoriteTeamCode = parseEnum( + "favoriteTeamCode", + body.favoriteTeamCode, + TEAM_CODE_VALUES + ); + const knowledgeLevel = parseEnum( + "knowledgeLevel", + body.knowledgeLevel, + KNOWLEDGE_LEVEL_VALUES + ); + + if (!token.email) { + throw new HttpError(400, "token has no email", "INVALID_INPUT"); + } + + await createUser(token.uid, { + displayName, + email: token.email, + photoUrl: token.picture, + provider: providerFromToken(token), + favoriteTeamCode, + knowledgeLevel, + }); + + const created = await getUser(token.uid); + if (!created) { + throw new HttpError(500, "failed to read created user"); + } + return created; +} diff --git a/src/types/panit.ts b/src/types/panit.ts index da66035..6c80b2b 100644 --- a/src/types/panit.ts +++ b/src/types/panit.ts @@ -3,11 +3,32 @@ import type { Timestamp } from "firebase-admin/firestore"; export type Provider = "google" | "apple"; export type GameStatus = "waiting" | "live" | "ended" | "canceled"; +export enum TeamCode { + KT = "KT", + NC = "NC", + SK = "SK", + LG = "LG", + HT = "HT", + LT = "LT", + HH = "HH", + OB = "OB", + SS = "SS", + WO = "WO", +} + +export enum KnowledgeLevel { + Beginner = "beginner", + Casual = "casual", + Expert = "expert", +} + export interface User { displayName: string; email: string; photoUrl?: string; provider: Provider; + favoriteTeamCode: TeamCode; + knowledgeLevel: KnowledgeLevel; createdAt: Timestamp; } diff --git a/tests/services/userService.test.ts b/tests/services/userService.test.ts new file mode 100644 index 0000000..cf648a7 --- /dev/null +++ b/tests/services/userService.test.ts @@ -0,0 +1,102 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import type { DecodedIdToken } from "firebase-admin/auth"; +import { firestore } from "../../src/firebase.js"; +import { createMe, getMe } from "../../src/services/userService.js"; +import { HttpError } from "../../src/middleware/errors.js"; + +const uid = "user-1"; + +function fakeToken(overrides: Partial = {}): DecodedIdToken { + return { + uid, + email: "tester@example.com", + picture: "https://cdn.example.com/p.png", + firebase: { + identities: {}, + sign_in_provider: "google.com", + }, + aud: "test", + auth_time: 0, + exp: 0, + iat: 0, + iss: "test", + sub: uid, + ...overrides, + } as DecodedIdToken; +} + +const validBody = { + displayName: "유저1", + favoriteTeamCode: "LG", + knowledgeLevel: "casual", +}; + +describe("userService", () => { + beforeEach(async () => { + await firestore.recursiveDelete(firestore.collection("users")); + }); + + describe("getMe", () => { + it("미존재 유저는 404 + USER_NOT_FOUND", async () => { + await expect(getMe(uid)).rejects.toMatchObject({ + status: 404, + code: "USER_NOT_FOUND", + }); + }); + + it("존재하는 유저를 반환한다", async () => { + await createMe(fakeToken(), validBody); + const u = await getMe(uid); + expect(u.displayName).toBe("유저1"); + expect(u.favoriteTeamCode).toBe("LG"); + expect(u.knowledgeLevel).toBe("casual"); + }); + }); + + describe("createMe", () => { + it("정상 생성 시 토큰의 email/photo/provider를 사용한다", async () => { + const u = await createMe(fakeToken(), validBody); + expect(u.email).toBe("tester@example.com"); + expect(u.photoUrl).toBe("https://cdn.example.com/p.png"); + expect(u.provider).toBe("google"); + expect(u.favoriteTeamCode).toBe("LG"); + expect(u.knowledgeLevel).toBe("casual"); + }); + + it("apple.com 프로바이더 매핑", async () => { + const t = fakeToken({ + firebase: { identities: {}, sign_in_provider: "apple.com" }, + }); + const u = await createMe(t, validBody); + expect(u.provider).toBe("apple"); + }); + + it("중복 생성 시 409 + USER_ALREADY_EXISTS", async () => { + await createMe(fakeToken(), validBody); + await expect(createMe(fakeToken(), validBody)).rejects.toMatchObject({ + status: 409, + code: "USER_ALREADY_EXISTS", + }); + }); + + it.each([ + ["빈 displayName", { ...validBody, displayName: "" }], + ["11자 displayName", { ...validBody, displayName: "1234567890X" }], + ["숫자 displayName", { ...validBody, displayName: 123 }], + ["잘못된 팀코드", { ...validBody, favoriteTeamCode: "XX" }], + ["잘못된 레벨", { ...validBody, knowledgeLevel: "master" }], + ])("%s → 400 INVALID_INPUT", async (_label, body) => { + await expect(createMe(fakeToken(), body as never)).rejects.toMatchObject({ + status: 400, + code: "INVALID_INPUT", + }); + }); + + it("지원하지 않는 provider → 400", async () => { + const t = fakeToken({ + firebase: { identities: {}, sign_in_provider: "password" }, + }); + await expect(createMe(t, validBody)).rejects.toBeInstanceOf(HttpError); + }); + }); +});