-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Labels
emulator: dataconnectIssues related to the dataconnect emulatorIssues related to the dataconnect emulatorreproducibletype: bug
Description
Firebase CLI Emulator Startup Issue
Environment Information
- Firebase Tools Version: 13.29.0
- NodeJS: 20.11.1
- Platform: macOS
- Project: codelab-dataconnect-web
Issue Description
The Firebase emulator fails to start with a runtime error when attempting to initialize the Data Connect emulator's PostgreSQL database.
Steps to Reproduce
- Clone the repository:
git clone https://github.com/firebaseextended/codelab-dataconnect-web
- Navigate to the app directory and install dependencies:
cd app npm i
- Start the Firebase emulators:
firebase emulators:start
Expected Behavior
- Firebase emulators should start successfully
- Data Connect emulator should initialize properly with PostgreSQL database
Actual Behavior
The emulator fails to start with the following error:
RuntimeError: unreachable
at wasm://wasm/0222924a:wasm-function[5692]:0x42e8d4
at wasm://wasm/0222924a:wasm-function[5668]:0x429e8f
at wasm://wasm/0222924a:wasm-function[2877]:0x25097d
at Module._pg_initdb (/usr/local/lib/node_modules/firebase-tools/node_modules/@electric-sql/pglite/dist/index.cjs:12:118235)
Additional Notes
- Multiple emulator instances warning was observed
- The issue appears to be specific to the Data Connect emulator's PostgreSQL initialization
- Full logs from running command with
--debug
flag:
[2024-12-13T17:31:06.104Z] > 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"]
[2024-12-13T17:31:06.105Z] > authorizing via signed-in user (some_email@gmail.com)
i emulators: Starting emulators: auth, hosting, dataconnect {"metadata":{"emulator":{"name":"hub"},"message":"Starting emulators: auth, hosting, dataconnect"}}
[2024-12-13T17:31:06.599Z] [logging] Logging Emulator only supports listening on one address (127.0.0.1). Not listening on ::1
[2024-12-13T17:31:06.599Z] [auth] Authentication Emulator only supports listening on one address (127.0.0.1). Not listening on ::1
[2024-12-13T17:31:06.599Z] [hosting] Hosting Emulator only supports listening on one address (127.0.0.1). Not listening on ::1
[2024-12-13T17:31:06.599Z] [dataconnect.postgres] postgres server for dataconnect only supports listening on one address (127.0.0.1). Not listening on ::1
[2024-12-13T17:31:06.599Z] assigned listening specs for emulators {"user":{"hub":[{"address":"127.0.0.1","family":"IPv4","port":4400},{"address":"::1","family":"IPv6","port":4400}],"ui":[{"address":"127.0.0.1","family":"IPv4","port":4000},{"address":"::1","family":"IPv6","port":4000}],"logging":[{"address":"127.0.0.1","family":"IPv4","port":4500}],"auth":[{"address":"127.0.0.1","family":"IPv4","port":9099}],"hosting":[{"address":"127.0.0.1","family":"IPv4","port":5059}],"dataconnect":[{"address":"127.0.0.1","family":"IPv4","port":9399},{"address":"::1","family":"IPv6","port":9399}],"dataconnect.postgres":[{"address":"127.0.0.1","family":"IPv4","port":5432}]},"metadata":{"message":"assigned listening specs for emulators"}}
⚠ emulators: It seems that you are running multiple instances of the emulator suite for project test-firebase-project-823fa. This may result in unexpected behavior.
[2024-12-13T17:31:06.601Z] [hub] writing locator at /var/folders/dt/g4sdb7y14pj4lfddbyd7pfmh0000gn/T/hub-test-firebase-project-823fa.json
[2024-12-13T17:31:09.548Z] I1213 18:31:09.537216 88674 control.go:45] [engine.Service /emulator/your-service-id 8f9f] UpdateSchema(): done sources: schema/schema.gql [1566B]
I1213 18:31:09.545227 88674 control.go:73] [engine.Service /emulator/your-service-id 8f9f] UpdateConnector(movie-connector): done sources: movie-connector/mutations.gql [2245B] movie-connector/queries.gql [3733B]
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.537216 88674 control.go:45] [engine.Service /emulator/your-service-id 8f9f] UpdateSchema(): done sources: schema/schema.gql [1566B] \nI1213 18:31:09.545227 88674 control.go:73] [engine.Service /emulator/your-service-id 8f9f] UpdateConnector(movie-connector): done sources: movie-connector/mutations.gql [2245B] movie-connector/queries.gql [3733B] \n"}}
[2024-12-13T17:31:09.548Z] Ignoring unsupported arg: auto_download {"metadata":{"emulator":{"name":"dataconnect"},"message":"Ignoring unsupported arg: auto_download"}}
[2024-12-13T17:31:09.548Z] Ignoring unsupported arg: port {"metadata":{"emulator":{"name":"dataconnect"},"message":"Ignoring unsupported arg: port"}}
[2024-12-13T17:31:09.548Z] Starting Data Connect Emulator with command {"binary":"/Users/someuser/.cache/firebase/emulators/dataconnect-emulator-1.7.5","args":["--logtostderr","-v=2","dev","--listen=127.0.0.1:9399,[::1]:9399","--config_dir=/Users/someuser/Desktop/codelab-dataconnect-web/dataconnect","--enable_output_schema_extensions=true","--enable_output_generated_sdk=true"],"optionalArgs":["listen","config_dir","enable_output_schema_extensions","enable_output_generated_sdk"],"joinArgs":true,"shell":false,"port":9399} {"metadata":{"emulator":{"name":"dataconnect"},"message":"Starting Data Connect Emulator with command {\"binary\":\"/Users/someuser/.cache/firebase/emulators/dataconnect-emulator-1.7.5\",\"args\":[\"--logtostderr\",\"-v=2\",\"dev\",\"--listen=127.0.0.1:9399,[::1]:9399\",\"--config_dir=/Users/someuser/Desktop/codelab-dataconnect-web/dataconnect\",\"--enable_output_schema_extensions=true\",\"--enable_output_generated_sdk=true\"],\"optionalArgs\":[\"listen\",\"config_dir\",\"enable_output_schema_extensions\",\"enable_output_generated_sdk\"],\"joinArgs\":true,\"shell\":false,\"port\":9399}"}}
i dataconnect: Data Connect Emulator logging to dataconnect-debug.log {"metadata":{"emulator":{"name":"dataconnect"},"message":"Data Connect Emulator logging to \u001b[1mdataconnect-debug.log\u001b[22m"}}
i dataconnect: Started up Postgres server, listening on {"address":"127.0.0.1","family":"IPv4","port":5432} {"metadata":{"emulator":{"name":"dataconnect"},"message":"Started up Postgres server, listening on {\"address\":\"127.0.0.1\",\"family\":\"IPv4\",\"port\":5432}"}}
[2024-12-13T17:31:09.558Z] [Data Connect] Connecting to postgres://127.0.0.1:5432/your-database?sslmode=disable}...
[2024-12-13T17:31:09.559Z] >>> [apiv2][query] POST http://127.0.0.1:9399/emulator/configure [none]
[2024-12-13T17:31:09.559Z] >>> [apiv2][body] POST http://127.0.0.1:9399/emulator/configure {"connectionString":"postgres://127.0.0.1:5432/your-database?sslmode=disable","database":"your-database","serviceId":"your-service-id","maxOpenConnections":1}
[2024-12-13T17:31:09.561Z] *** [apiv2] error from fetch(http://127.0.0.1:9399/emulator/configure, {"headers":{},"method":"POST","body":"{\"connectionString\":\"postgres://127.0.0.1:5432/your-database?sslmode=disable\",\"database\":\"your-database\",\"serviceId\":\"your-service-id\",\"maxOpenConnections\":1}"}): FetchError: request to http://127.0.0.1:9399/emulator/configure failed, reason: connect ECONNREFUSED 127.0.0.1:9399
[2024-12-13T17:31:09.561Z] [Data Connect] Retrying connectToPostgress call (1 of 3 attempts): FirebaseError: Data Connect emulator: undefined
[2024-12-13T17:31:09.698Z] I1213 18:31:09.696999 88677 load.go:37] Reloading schema and connectors...
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.696999 88677 load.go:37] Reloading schema and connectors...\n"}}
[2024-12-13T17:31:09.710Z] I1213 18:31:09.710286 88677 control.go:45] [engine.Service /emulator/your-service-id c563] UpdateSchema(): done sources: schema/schema.gql [1566B]
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.710286 88677 control.go:45] [engine.Service /emulator/your-service-id c563] UpdateSchema(): done sources: schema/schema.gql [1566B] \n"}}
[2024-12-13T17:31:09.718Z] I1213 18:31:09.718215 88677 control.go:73] [engine.Service /emulator/your-service-id c563] UpdateConnector(movie-connector): done sources: movie-connector/mutations.gql [2245B] movie-connector/queries.gql [3733B]
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.718215 88677 control.go:73] [engine.Service /emulator/your-service-id c563] UpdateConnector(movie-connector): done sources: movie-connector/mutations.gql [2245B] movie-connector/queries.gql [3733B] \n"}}
[2024-12-13T17:31:09.732Z] I1213 18:31:09.732330 88677 codegen.go:82] [connector "movie-connector" javascriptSdk] Generating sources into "/Users/someuser/Desktop/codelab-dataconnect-web/app/src/lib/dataconnect-sdk"
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.732330 88677 codegen.go:82] [connector \"movie-connector\" javascriptSdk] Generating sources into \"/Users/someuser/Desktop/codelab-dataconnect-web/app/src/lib/dataconnect-sdk\"\n"}}
[2024-12-13T17:31:09.737Z] I1213 18:31:09.737633 88677 collector.go:107] schema extensions wrote into "/Users/someuser/Desktop/codelab-dataconnect-web/dataconnect/.dataconnect/schema"
Generated sources: prelude.gql [65151B]
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.737633 88677 collector.go:107] schema extensions wrote into \"/Users/someuser/Desktop/codelab-dataconnect-web/dataconnect/.dataconnect/schema\"\nGenerated sources: prelude.gql [65151B] \n"}}
[2024-12-13T17:31:09.738Z] I1213 18:31:09.738061 88677 collector.go:107] connector "movie-connector" javascriptSdk wrote into "/Users/someuser/Desktop/codelab-dataconnect-web/app/src/lib/dataconnect-sdk"
Generated sources: index.d.ts [264B] esm/index.esm.js [196B] esm/package.json [17B] index.cjs.js [237B] package.json [630B]
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.738061 88677 collector.go:107] connector \"movie-connector\" javascriptSdk wrote into \"/Users/someuser/Desktop/codelab-dataconnect-web/app/src/lib/dataconnect-sdk\"\nGenerated sources: index.d.ts [264B] esm/index.esm.js [196B] esm/package.json [17B] index.cjs.js [237B] package.json [630B] \n"}}
[2024-12-13T17:31:09.740Z] I1213 18:31:09.740256 88677 installsdk.go:48] Package @movie/dataconnect is already installed. Skipping installation
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.740256 88677 installsdk.go:48] Package @movie/dataconnect is already installed. Skipping installation\n"}}
[2024-12-13T17:31:09.740Z] I1213 18:31:09.740392 88677 load.go:115] Finished reloading
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.740392 88677 load.go:115] Finished reloading\n"}}
[2024-12-13T17:31:09.743Z] I1213 18:31:09.743439 88677 dev.go:95] Listening on address (HTTP + gRPC): 127.0.0.1:9399
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.743439 88677 dev.go:95] Listening on address (HTTP + gRPC): 127.0.0.1:9399\n"}}
[2024-12-13T17:31:09.744Z] I1213 18:31:09.744282 88677 dev.go:95] Listening on address (HTTP + gRPC): [::1]:9399
{"metadata":{"emulator":{"name":"dataconnect"},"message":"I1213 18:31:09.744282 88677 dev.go:95] Listening on address (HTTP + gRPC): [::1]:9399\n"}}
[2024-12-13T17:31:11.564Z] [Data Connect] Connecting to postgres://127.0.0.1:5432/your-database?sslmode=disable}...
[2024-12-13T17:31:11.566Z] >>> [apiv2][query] POST http://127.0.0.1:9399/emulator/configure [none]
[2024-12-13T17:31:11.567Z] >>> [apiv2][body] POST http://127.0.0.1:9399/emulator/configure {"connectionString":"postgres://127.0.0.1:5432/your-database?sslmode=disable","database":"your-database","serviceId":"your-service-id","maxOpenConnections":1}
[2024-12-13T17:31:11.609Z] Frontend message
[2024-12-13T17:31:11.610Z] Backend message AuthenticationResponse
[2024-12-13T17:31:11.610Z] Backend message ParameterStatus
[2024-12-13T17:31:11.611Z] Backend message ReadyForQuery
[2024-12-13T17:31:11.612Z] Frontend message Query
[2024-12-13T17:31:11.911Z] RuntimeError: unreachable
at wasm://wasm/0222924a:wasm-function[5692]:0x42e8d4
at wasm://wasm/0222924a:wasm-function[5668]:0x429e8f
at wasm://wasm/0222924a:wasm-function[2877]:0x25097d
at Module._pg_initdb (/usr/local/lib/node_modules/firebase-tools/node_modules/@electric-sql/pglite/dist/index.cjs:12:118235)
at eE.ua (/usr/local/lib/node_modules/firebase-tools/node_modules/@electric-sql/pglite/dist/index.cjs:12:2428733)
at async eE.create (/usr/local/lib/node_modules/firebase-tools/node_modules/@electric-sql/pglite/dist/index.cjs:12:2423415)
at async PostgresServer.forceCreateDB (/usr/local/lib/node_modules/firebase-tools/lib/emulator/dataconnect/pgliteServer.js:112:24)
at async PostgresServer.getDb (/usr/local/lib/node_modules/firebase-tools/lib/emulator/dataconnect/pgliteServer.js:95:23)
at async Object.onMessage (/usr/local/lib/node_modules/firebase-tools/lib/emulator/dataconnect/pgliteServer.js:53:32)
Error: An unexpected error has occurred.
Having trouble? Try again or contact support with contents of firebase-debug.log
Reproduction Repository
Metadata
Metadata
Assignees
Labels
emulator: dataconnectIssues related to the dataconnect emulatorIssues related to the dataconnect emulatorreproducibletype: bug