Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bun.sh grpc-js :: undefined is not an object (evaluating 'error.stack.split') :: what am I missing? #2300

Open
vincekruger opened this issue Sep 9, 2023 · 23 comments

Comments

@vincekruger
Copy link

[REQUIRED] Step 2: Describe your environment

  • Operating System version: macOS 13.5.2 (22G91)
  • Firebase SDK version: 11.10.1
  • Firebase Product: firestore
  • Node.js version: 18.17.1
  • NPM version: 8.19.2

[REQUIRED] Step 3: Describe the problem

I'm testing out bun and I can't do a basic get() on a collection. What am I missing?

Steps to reproduce:

index.ts

require('dotenv').config()

import { initializeApp } from 'firebase-admin/app'
initializeApp()
import { getFirestore } from 'firebase-admin/firestore'
export const db = getFirestore()
db.collection('category').get()

Run

bun index.ts

[0.05ms] ".env"
29 | const CALL_INVOCATION_TRANSFORMER_SYMBOL = Symbol();
30 | function isFunction(arg) {
31 |     return typeof arg === 'function';
32 | }
33 | function getErrorStackString(error) {
34 |     return error.stack.split('\n').slice(1).join('\n');
               ^
TypeError: undefined is not an object (evaluating 'error.stack.split')
      at getErrorStackString (/path/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client.js:34:11)
      at onReceiveStatus (/path/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client.js:356:40)
      at onReceiveStatus (/path/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:323:177)
      at /path/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/resolving-call.js:94:74
      at processTicksAndRejections (:1:2602)
@google-oss-bot
Copy link

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

@zRelux
Copy link

zRelux commented Sep 11, 2023

I got this issue as well

@rubennaatje
Copy link

I thought Bun wasn't going to work with grpc yet because of missing HTTP2 support?

Might be related to your issue.

Hope they support it soon though!

@antman786
Copy link

I got the same issue. Thank goodness I googled the error since the stack trace didn't point to the line of code throwing the error.

@robertherber
Copy link

I'm getting another bun error, not 100% sure if it's related:
Import named 'firestore' not found in module '/***/node_modules/firebase-admin/lib/index.js'.

@betoharres
Copy link

I'm having this exact same issue as well when trying to use the @google-analytics/admin package just by doing a simple report await analyticsDataClient.runReport({...})

@lahirumaramba
Copy link
Member

Firebase Admin SDK requires a full Node.js runtime and currently not supported on other alternative JS environments.

@rubennaatje
Copy link

Firebase Admin SDK requires a full Node.js runtime and currently not supported on other alternative JS environments.

Yeah seems to me like this should be a bun.js issue and not here. They're the ones 'promising' full node compability.

@vincekruger
Copy link
Author

Agreed. There is a discussion ongoing there already regarding this.
oven-sh/bun#4746

@jontybrook
Copy link

Ditto here... unable to use the firebase-admin SDK for firestore.

@Daavidaviid
Copy link

I'd want to use bun.sh but not being able to use firebase-admin really is blocking

@paulGeoghegan
Copy link

Any ideas on when this might be fixed. I'm trying to use the Google Vision API but it seems like this is a problem with it to. This has totaly blocked the development of a big feature for us.

@samuelslva-jlfs
Copy link

Just because this is first on google, but please do checkout the discussion on bun's repo oven-sh/bun#4746

TL;DR: Error.prototype.stack = ''; early in the program should fix this. (prevents the error but wont restore your stack trace, try-catch it yourself)

If you’re curious here is a nice rabbit hole to go down

@ct-simon
Copy link

ct-simon commented Nov 25, 2023

Things are improving (with improved http2/gRPC support in bun.sh 1.0.14) but firestore snapshots are still hanging.

@Hagej
Copy link

Hagej commented Dec 4, 2023

Still experiencing this issue using the google pubsub emulator on bun 1.0.15

@di-sukharev
Copy link

di-sukharev commented Dec 20, 2023

same for @google-cloud/firestore package, version 1.0.18

@e-simpson
Copy link

e-simpson commented Jan 25, 2024

Still seeing this on bun 1.0.25 and firebase-admin 12.0.0

@e-simpson
Copy link

Trying to run a post build script after build on Vercel with command npx bun@1.0.26 run post.build.ts and still getting firestore/grpc/google-gax errors on bun 1.0.26:

Error posting version:  27 |  * @param status
28 |  */
29 | function callErrorFromStatus(status, callerStack) {
30 |     const message = **${status.code} ${constants_1.Status[status.code]}: ${status.details}`;
31 |     const error = new Error(message);
32 |     const stack = `${error.stack}\nfor call at\n${callerStack}`;
                                                                  ^
error: 4 DEADLINE_EXCEEDED: Deadline exceeded
 code: "4"
      at callErrorFromStatus (/vercel/path0/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/call.js:32:62)
      at onReceiveStatus (/vercel/path0/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client.js:192:56)
      at onReceiveStatus (/vercel/path0/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:360:141)
      at onReceiveStatus (/vercel/path0/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:323:181)
      at /vercel/path0/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/resolving-call.js:99:78
      at makeUnaryRequest (/vercel/path0/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client.js:230:45)
      at /vercel/path0/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/make-client.js:105:19
      at /vercel/path0/node_modules/google-gax/build/src/normalCalls/timeout.js:44:16
      at repeat (/vercel/path0/node_modules/google-gax/build/src/normalCalls/retries.js:79:81)
      at /vercel/path0/node_modules/google-gax/build/src/normalCalls/retries.js:118:13
      at call (/vercel/path0/node_modules/google-gax/build/src/call.js:67:27)
      at call (/vercel/path0/node_modules/google-gax/build/src/normalCalls/normalApiCaller.js:34:19)
      at /vercel/path0/node_modules/google-gax/build/src/createApiCall.js:84:30
      at commit (/vercel/path0/node_modules/@google-cloud/firestore/build/src/write-batch.js:434:28)
      at set (/vercel/path0/node_modules/@google-cloud/firestore/build/src/reference.js:398:27)
      at module code (/vercel/path0/post.build.ts:30:8)

This occurs when calling the update or set member on a firebase-admin doc, example:

        firestoreAdminDoc.update({name: "value"});

@puerschel93
Copy link

I am still not able to use firebase-admin (12.0.0) with bun (1.0.29).

SyntaxError: Export named 'initializeApp' not found in module '/Users/florianpurschel/Development/Projekte/server/node_modules/firebase-admin/lib/index.js'.

is that issue related to that or am I missing something here ?

@nabildroid
Copy link

same here!!!!!

@mouthzipper
Copy link

I'm facing the same issue. I was really hoping to switch from Node to Bun, but it's turned into a blocker for me. 😸

@ProJaCore
Copy link

ProJaCore commented Apr 8, 2024

try now to update your projects bun version to 1.1 bun update bun

@e-simpson
Copy link

e-simpson commented Apr 8, 2024

Can confirm firestore/grpc/google-gax errors are fixed for me on bun 1.1.2 ! 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests