siren icon indicating copy to clipboard operation
siren copied to clipboard

Error with Length and Map - Siren 3.1.0

Open ethbkk1 opened this issue 1 month ago • 8 comments

Describe the bug Now that the system is running I'm seeing some other errors on mainnet after startup

siren-1 | Attempting to connect to beacon node and validator client... siren-1 | [Nest] 109 - 11/12/2025, 2:27:41 AM LOG [NestApplication] Nest application successfully started +11ms siren-1 | Backend server is running on port 3001 siren-1 | Connection failed [ERR_STRING_TOO_LONG]: Unknown error... siren-1 | Closing all SSE connections... siren-1 | Retrying connection in 30 seconds... siren-1 | (node:111) [DEP0169] DeprecationWarning: url.parse() behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for url.parse() vulnerabilities. siren-1 | (Use node --trace-deprecation ... to show where the warning was created) siren-1 | ⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3300". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase siren-1 | [Nest] 109 - 11/12/2025, 2:27:44 AM ERROR [ExceptionsHandler] Cannot read properties of undefined (reading 'length') siren-1 | TypeError: Cannot read properties of undefined (reading 'length') siren-1 | at /app/backend/dist/backend/src/validator/validator.service.js:73:51 siren-1 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5) siren-1 | at async UtilsService.fetchFromCache (/app/backend/dist/backend/src/utils/utils.service.js:86:22) siren-1 | at async /app/backend/node_modules/@nestjs/core/router/router-execution-context.js:46:28 siren-1 | at async /app/backend/node_modules/@nestjs/core/router/router-proxy.js:9:17 siren-1 | [Nest] 109 - 11/12/2025, 2:27:44 AM ERROR [ExceptionsHandler] Cannot read properties of undefined (reading 'map') siren-1 | TypeError: Cannot read properties of undefined (reading 'map') siren-1 | at /app/backend/dist/backend/src/validator/validator.service.js:120:48 siren-1 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5) siren-1 | at async UtilsService.fetchFromCache (/app/backend/dist/backend/src/utils/utils.service.js:86:22) siren-1 | at async /app/backend/node_modules/@nestjs/core/router/router-execution-context.js:46:28 siren-1 | at async /app/backend/node_modules/@nestjs/core/router/router-proxy.js:9:17 siren-1 | undefined

siren-1 | Closing all SSE connections... siren-1 | Retrying connection in 30 seconds... siren-1 | Connection failed [ERR_STRING_TOO_LONG]: Unknown error... siren-1 | Attempting to connect to beacon node and validator client... siren-1 | Closing all SSE connections... siren-1 | Retrying connection in 30 seconds... siren-1 | Connection failed [ERR_STRING_TOO_LONG]: Unknown error... siren-1 | Attempting to connect to beacon node and validator client... siren-1 | Connection failed [ERR_STRING_TOO_LONG]: Unknown error... siren-1 | Closing all SSE connections...

To Reproduce Upgrade and then run.. No other actions taken.

Expected behavior No errors

Screenshots

Image
  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context Add any other context about the problem here.

ethbkk1 avatar Nov 12 '25 03:11 ethbkk1

I also had an issue on hoodie testnet when I tried 3.1.0... Rolling back to v3.0.4 worked for hoodi testnest.

Image

ethbkk1 avatar Nov 12 '25 04:11 ethbkk1

Can you share how do you run Siren, and also how do you run BN and VC? I couldn't reproduce the error you see, I just try running on mainnet and Hoodi and it looks ok.

For Hoodi testnet, can Siren starts and go to the main page? How about mainnet? (from last issue you can access Siren on mainnet, but from the screenshot you have, it looks like Siren can't connect to BN and VC)

chong-he avatar Nov 12 '25 06:11 chong-he

for (let i = 0; i < validatorData.length; i += BATCH_SIZE) { @chong-he I think the issue could be here in the validator.service.ts when handling batches

rickimoore avatar Nov 12 '25 10:11 rickimoore

for (let i = 0; i < validatorData.length; i += BATCH_SIZE) { @chong-he I think the issue could be here in the validator.service.ts when handling batches

Thanks for the hint, will look into it

chong-he avatar Nov 12 '25 12:11 chong-he

Can you share how do you run Siren, and also how do you run BN and VC? I couldn't reproduce the error you see, I just try running on mainnet and Hoodi and it looks ok.

For Hoodi testnet, can Siren starts and go to the main page? How about mainnet? (from last issue you can access Siren on mainnet, but from the screenshot you have, it looks like Siren can't connect to BN and VC)

I run siren using ethdocker with out of the box. For the hoodi testnet I add some certificates and update the defaults.conf. Other than that it's completely stock that pulls from the repos with the standard configuration. There's very little customization.

I'll try again in a little bit..

ethbkk1 avatar Nov 12 '25 20:11 ethbkk1

Can you share how do you run Siren, and also how do you run BN and VC? I couldn't reproduce the error you see, I just try running on mainnet and Hoodi and it looks ok. For Hoodi testnet, can Siren starts and go to the main page? How about mainnet? (from last issue you can access Siren on mainnet, but from the screenshot you have, it looks like Siren can't connect to BN and VC)

I run siren using ethdocker with out of the box. For the hoodi testnet I add some certificates and update the defaults.conf. Other than that it's completely stock that pulls from the repos with the standard configuration. There's very little customization.

I'll try again in a little bit..

@michaelsproul found the cause of this. It is because there is no validators in the VC, and then Siren sends the request to query for validator states, empty request means returning states for all validators (according to beacon API spec): https://github.com/sigp/lighthouse/pull/7474

This is included in Lighthouse v8.0.0 that's why we see this.

Can you confirm that, for your Siren isntance in eth-docker, the Lighthouse VC has no validators?

We will fix this

chong-he avatar Nov 13 '25 07:11 chong-he

Can you share how do you run Siren, and also how do you run BN and VC? I couldn't reproduce the error you see, I just try running on mainnet and Hoodi and it looks ok. For Hoodi testnet, can Siren starts and go to the main page? How about mainnet? (from last issue you can access Siren on mainnet, but from the screenshot you have, it looks like Siren can't connect to BN and VC)

I run siren using ethdocker with out of the box. For the hoodi testnet I add some certificates and update the defaults.conf. Other than that it's completely stock that pulls from the repos with the standard configuration. There's very little customization. I'll try again in a little bit..

@michaelsproul found the cause of this. It is because there is no validators in the VC, and then Siren sends the request to query for validator states, empty request means returning states for all validators (according to beacon API spec): sigp/lighthouse#7474

This is included in Lighthouse v8.0.0 that's why we see this.

Can you confirm that, for your Siren isntance in eth-docker, the Lighthouse VC has no validators?

We will fix this

Hoodi testnet has a validator on it. Mainnet does not. I can test it when its ready.

ethbkk1 avatar Nov 13 '25 21:11 ethbkk1

Can you share how do you run Siren, and also how do you run BN and VC? I couldn't reproduce the error you see, I just try running on mainnet and Hoodi and it looks ok. For Hoodi testnet, can Siren starts and go to the main page? How about mainnet? (from last issue you can access Siren on mainnet, but from the screenshot you have, it looks like Siren can't connect to BN and VC)

I run siren using ethdocker with out of the box. For the hoodi testnet I add some certificates and update the defaults.conf. Other than that it's completely stock that pulls from the repos with the standard configuration. There's very little customization. I'll try again in a little bit..

@michaelsproul found the cause of this. It is because there is no validators in the VC, and then Siren sends the request to query for validator states, empty request means returning states for all validators (according to beacon API spec): sigp/lighthouse#7474 This is included in Lighthouse v8.0.0 that's why we see this. Can you confirm that, for your Siren isntance in eth-docker, the Lighthouse VC has no validators? We will fix this

Hoodi testnet has a validator on it. Mainnet does not. I can test it when its ready.

Thanks for confirming. This will be fixed by #461

It will be included in a new release (don't have a timeline yet at the moment)

Edit: also, if you load any validator keys to the VC, then the error will not show up

chong-he avatar Nov 13 '25 22:11 chong-he