firebase / firebase-tools

The Firebase Command Line Tools
MIT License
4.01k stars 929 forks source link

Failed to deploy functions: server timeout or links issue #2188

Open HugoGresse opened 4 years ago

HugoGresse commented 4 years ago

[REQUIRED] Environment info

firebase-tools: 8.2.0

Platform: macOS, 10.15.3, DNS:1.1.1.1, zsh, node 10.19.0

[REQUIRED] Test case

I'm trying to deploy the Firebase Functions in Typescript from here

[REQUIRED] Steps to reproduce

  1. Clone and install the dependencies for the functions/ dir.
  2. Run firebase deploy --only functions or firebase deploy --only functions:slackCommand

[REQUIRED] Expected behavior

Deploy is successful, no error displayed

[REQUIRED] Actual behavior

Since yesterday (Tuesday 28th April) I have the following issues 80% of the time. The deploy work only a very small amount of the time so. The day before, the dependencies was the same and did deploy around 10 times without issue. Errors (not deterministic):

Solution tried

  1. Links issue: removing the repo on my local machine and recloning it: not solving the issue
  2. Updating firebase-tools: npm uninstall -g firebase-tools && npm install -g firebase-tools not solving the issue
  3. Logout and login: not solving the issue
Logs for Links and shortcut issue:

``` ➜ firebase deploy --only functions:slackCommand --debug [2020-04-29T08:39:54.875Z] > 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"] [2020-04-29T08:39:54.876Z] > authorizing via signed-in user [2020-04-29T08:39:54.877Z] [iam] checking project kaamelott-bot for permissions ["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"] [2020-04-29T08:39:54.880Z] >>> HTTP REQUEST POST https://cloudresourcemanager.googleapis.com/v1/projects/kaamelott-bot:testIamPermissions {"permissions":["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]} [2020-04-29T08:39:55.687Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:39:55 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","server-timing":"gfet4t7; dur=654","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:39:55.689Z] >>> HTTP REQUEST POST https://iam.googleapis.com/v1/projects/kaamelott-bot/serviceAccounts/kaamelott-bot@appspot.gserviceaccount.com:testIamPermissions {"permissions":["iam.serviceAccounts.actAs"]} [2020-04-29T08:39:56.670Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:39:56 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} ⚠ functions: package.json indicates an outdated version of firebase-functions. Please upgrade using npm install --save firebase-functions@latest in your functions directory. === Deploying to 'kaamelott-bot'... i deploying functions Running command: npm --prefix "$RESOURCE_DIR" run lint > functions@ lint /Users/hugogresse/projects/-incubator/kaamelott-bot/functions > tslint --project tsconfig.json Running command: npm --prefix "$RESOURCE_DIR" run build > functions@ build /Users/hugogresse/projects/-incubator/kaamelott-bot/functions > tsc ✔ functions: Finished running predeploy script. [2020-04-29T08:40:06.610Z] > [functions] package.json contents: { "name": "functions", "scripts": { "lint": "tslint --project tsconfig.json", "build": "tsc", "serve": "npm run build && firebase emulators:start --only functions", "shell": "npm run build && firebase functions:shell", "start": "npm run shell", "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, "engines": { "node": "10" }, "main": "lib/index.js", "dependencies": { "express": "^4.17.1", "ffmpeg-static": "^4.1.1", "firebase-admin": "^8.9.0", "firebase-functions": "^3.3.0", "fluent-ffmpeg": "^2.1.2", "lodash": "^4.17.15", "node-fetch": "^2.6.0", "qs": "^6.9.3", "twitter": "^1.7.1" }, "devDependencies": { "@types/cors": "^2.8.6", "@types/fluent-ffmpeg": "^2.1.14", "@types/node-fetch": "^2.5.6", "@types/twitter": "^1.7.0", "firebase-functions-test": "^0.1.6", "tslint": "^5.12.0", "typescript": "^3.2.2" }, "private": true } i functions: ensuring required API cloudfunctions.googleapis.com is enabled... [2020-04-29T08:40:07.656Z] [functions] runtime dependency check dates: warning: 2020-05-05T00:00:00.000Z error: 2020-06-05T00:00:00.000Z [2020-04-29T08:40:07.657Z] >>> HTTP REQUEST GET https://serviceusage.googleapis.com/v1/projects/kaamelott-bot/services/cloudfunctions.googleapis.com [2020-04-29T08:40:07.657Z] >>> HTTP REQUEST GET https://serviceusage.googleapis.com/v1/projects/kaamelott-bot/services/runtimeconfig.googleapis.com [2020-04-29T08:40:08.461Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:08 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\"","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:08.573Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:08 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\"","accept-ranges":"none","transfer-encoding":"chunked"} ✔ functions: required API cloudfunctions.googleapis.com is enabled [2020-04-29T08:40:08.573Z] >>> HTTP REQUEST GET https://firebase.googleapis.com/v1beta1/projects/kaamelott-bot/adminSdkConfig [2020-04-29T08:40:08.864Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:08 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} i functions: preparing functions directory for uploading... [2020-04-29T08:40:08.866Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs [2020-04-29T08:40:09.778Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:09 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:09.779Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables [2020-04-29T08:40:09.780Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/video/variables [2020-04-29T08:40:09.780Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/slack/variables [2020-04-29T08:40:09.981Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:09 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:09.982Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/slack/variables/signing_secret [2020-04-29T08:40:09.983Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/slack/variables/client_id [2020-04-29T08:40:09.983Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/slack/variables/client_secret [2020-04-29T08:40:10.618Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:10 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:10.619Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/account_name [2020-04-29T08:40:10.619Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/consumer_key [2020-04-29T08:40:10.620Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/consumer_secret [2020-04-29T08:40:10.620Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/access_token_key [2020-04-29T08:40:10.620Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/access_token_secret [2020-04-29T08:40:10.740Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:10 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:10.816Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:10 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:10.823Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:10 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:10.847Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:10 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:11.371Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:11 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:11.451Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:11 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:11.461Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:11 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:12.905Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:12 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:40:12.906Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/video/variables/thumbnail [2020-04-29T08:40:13.122Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:40:13 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:41:25.623Z] FirebaseError: Server Error. connect ETIMEDOUT 216.58.201.234:443 [2020-04-29T08:41:26.044Z] Error: input source must be valid Stream or Buffer instance at Archiver.append (/Users/hugogresse/.nvm/versions/node/v10.19.0/lib/node_modules/firebase-tools/node_modules/archiver/lib/core.js:575:24) at /Users/hugogresse/.nvm/versions/node/v10.19.0/lib/node_modules/firebase-tools/lib/prepareFunctionsUpload.js:63:17 at process._tickCallback (internal/process/next_tick.js:68:7) Error: Could not read source directory. Remove links and shortcuts and try again. ```

Logs for error: server timeout

``` ➜ firebase deploy --only functions:slackCommand --debug [2020-04-29T08:50:22.672Z] > 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"] [2020-04-29T08:50:22.673Z] > authorizing via signed-in user [2020-04-29T08:50:22.674Z] [iam] checking project kaamelott-bot for permissions ["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"] [2020-04-29T08:50:22.677Z] >>> HTTP REQUEST POST https://cloudresourcemanager.googleapis.com/v1/projects/kaamelott-bot:testIamPermissions {"permissions":["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]} [2020-04-29T08:50:23.589Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:23 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","server-timing":"gfet4t7; dur=661","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:23.591Z] >>> HTTP REQUEST POST https://iam.googleapis.com/v1/projects/kaamelott-bot/serviceAccounts/kaamelott-bot@appspot.gserviceaccount.com:testIamPermissions {"permissions":["iam.serviceAccounts.actAs"]} [2020-04-29T08:50:24.099Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:23 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\"","accept-ranges":"none","transfer-encoding":"chunked"} ⚠ functions: package.json indicates an outdated version of firebase-functions. Please upgrade using npm install --save firebase-functions@latest in your functions directory. === Deploying to 'kaamelott-bot'... i deploying functions Running command: npm --prefix "$RESOURCE_DIR" run lint > functions@ lint /Users/hugogresse/projects/-incubator/kaamelott-bot/functions > tslint --project tsconfig.json Running command: npm --prefix "$RESOURCE_DIR" run build > functions@ build /Users/hugogresse/projects/-incubator/kaamelott-bot/functions > tsc ✔ functions: Finished running predeploy script. [2020-04-29T08:50:33.672Z] > [functions] package.json contents: { "name": "functions", "scripts": { "lint": "tslint --project tsconfig.json", "build": "tsc", "serve": "npm run build && firebase emulators:start --only functions", "shell": "npm run build && firebase functions:shell", "start": "npm run shell", "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, "engines": { "node": "10" }, "main": "lib/index.js", "dependencies": { "express": "^4.17.1", "ffmpeg-static": "^4.1.1", "firebase-admin": "^8.9.0", "firebase-functions": "^3.3.0", "fluent-ffmpeg": "^2.1.2", "lodash": "^4.17.15", "node-fetch": "^2.6.0", "qs": "^6.9.3", "twitter": "^1.7.1" }, "devDependencies": { "@types/cors": "^2.8.6", "@types/fluent-ffmpeg": "^2.1.14", "@types/node-fetch": "^2.5.6", "@types/twitter": "^1.7.0", "firebase-functions-test": "^0.1.6", "tslint": "^5.12.0", "typescript": "^3.2.2" }, "private": true } i functions: ensuring required API cloudfunctions.googleapis.com is enabled... [2020-04-29T08:50:34.679Z] [functions] runtime dependency check dates: warning: 2020-05-05T00:00:00.000Z error: 2020-06-05T00:00:00.000Z [2020-04-29T08:50:34.680Z] >>> HTTP REQUEST GET https://serviceusage.googleapis.com/v1/projects/kaamelott-bot/services/cloudfunctions.googleapis.com [2020-04-29T08:50:34.681Z] >>> HTTP REQUEST GET https://serviceusage.googleapis.com/v1/projects/kaamelott-bot/services/runtimeconfig.googleapis.com [2020-04-29T08:50:35.672Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:35 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:35.716Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:35 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} ✔ functions: required API cloudfunctions.googleapis.com is enabled [2020-04-29T08:50:35.716Z] >>> HTTP REQUEST GET https://firebase.googleapis.com/v1beta1/projects/kaamelott-bot/adminSdkConfig [2020-04-29T08:50:36.009Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:35 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\"","accept-ranges":"none","transfer-encoding":"chunked"} i functions: preparing functions directory for uploading... [2020-04-29T08:50:36.011Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs [2020-04-29T08:50:36.310Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.311Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/slack/variables [2020-04-29T08:50:36.312Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables [2020-04-29T08:50:36.312Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/video/variables [2020-04-29T08:50:36.592Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.593Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/access_token_key [2020-04-29T08:50:36.593Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/access_token_secret [2020-04-29T08:50:36.594Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/account_name [2020-04-29T08:50:36.594Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/consumer_key [2020-04-29T08:50:36.594Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/twitter/variables/consumer_secret [2020-04-29T08:50:36.595Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.595Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/slack/variables/client_id [2020-04-29T08:50:36.596Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/slack/variables/client_secret [2020-04-29T08:50:36.596Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/slack/variables/signing_secret [2020-04-29T08:50:36.596Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.597Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/kaamelott-bot/configs/video/variables/thumbnail [2020-04-29T08:50:36.841Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.843Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.844Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.844Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.845Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.845Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.846Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.847Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} [2020-04-29T08:50:36.847Z] <<< HTTP RESPONSE 200 {"content-type":"application/json; charset=UTF-8","vary":"X-Origin, Referer, Origin,Accept-Encoding","date":"Wed, 29 Apr 2020 08:50:36 GMT","server":"ESF","cache-control":"private","x-xss-protection":"0","x-frame-options":"SAMEORIGIN","x-content-type-options":"nosniff","alt-svc":"quic=\":443\"; ma=2592000; v=\"46,43\",h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000","accept-ranges":"none","transfer-encoding":"chunked"} i functions: packaged functions (78.62 KB) for uploading [2020-04-29T08:50:37.356Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1/projects/kaamelott-bot/locations/-/functions [2020-04-29T08:51:52.878Z] [functions] failed to list functions for kaamelott-bot [2020-04-29T08:51:52.878Z] [functions] Server Error. connect ETIMEDOUT 172.217.18.202:443 [2020-04-29T08:51:52.880Z] Error: An unexpected error has occurred. ```

tinaliang commented 4 years ago

Hi! Thanks for sharing your project and logs! I noticed that your firebase-functions SDK is still on v3.3.0. Could you try updating it to ^v3.6.0?

npm install --save firebase-functions@latest

mbleigh commented 4 years ago

@HugoGresse if updating the SDK doesn't help, please file a support request so that it can be sent to the appropriate team to investigate.

HugoGresse commented 4 years ago

I've updated to functions ^3.6.1 but still got the same issue. Filling the support request now thanks.

Berreis commented 4 years ago

Any updates on this? I'm having the same problem.

HugoGresse commented 4 years ago

I've changed my computer and no longer have any issue ¯_(ツ)_/¯

samtstern commented 3 years ago

I'm actually stuck on this issue myself:

[2020-10-09T10:15:10.044Z] Error: input source must be valid Stream or Buffer instance
    at Archiver.append (/Users/samstern/.nvm/versions/node/v10.19.0/lib/node_modules/firebase-tools/node_modules/archiver/lib/core.js:575:24)
    at /Users/samstern/.nvm/versions/node/v10.19.0/lib/node_modules/firebase-tools/lib/prepareFunctionsUpload.js:63:17
    at process._tickCallback (internal/process/next_tick.js:68:7)

Error: Could not read source directory. Remove links and shortcuts and try again.

Tried cleaning everything out with git clean -f -d -X but same result repeats.

samtstern commented 3 years ago

Also fixed for me by switching computers ... sigh.