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

Adapter crash since 3.9.x with TypeError: Cannot read properties of undefined (reading 'split') #417

Closed
jens-maus opened this issue Jun 14, 2023 · 1 comment

Comments

@jens-maus
Copy link
Contributor

Describe the bug
Since update to version 3.9.x of ioBroker.hue, the adapter is constantly crashing with the following error log message until the ioBroker disables the adapter:

2023-06-14 09:11:46.803  - error: hue.0 (2186349) TypeError: Cannot read properties of undefined (reading 'split')
    at Hue.handleUpdate (/opt/iobroker/node_modules/iobroker.hue/src/main.ts:1100:42)
    at HuePushClient.<anonymous> (/opt/iobroker/node_modules/iobroker.hue/src/main.ts:1083:30)
    at HuePushClient.emit (node:events:513:28)
    at HuePushClient.emit (node:domain:489:12)
    at _emit (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:287:17)
    at parseEventStreamLine (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:302:9)
    at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:259:11)
    at IncomingMessage.emit (node:events:513:28)
    at IncomingMessage.emit (node:domain:489:12)
    at addChunk (node:internal/streams/readable:324:12)

To Reproduce
Steps to reproduce the behavior:

  1. Update to ioBroker.hue 3.9.x
  2. Wait until adapter crashes
  3. See ioBroker.admin notifications that the ioBroker.hue adapter constantly crashes and was disabled.
  4. See error log

Expected behavior
The adapter should work as expected and like 3.8.0

Screenshots & Logfiles
See here for the complete log right from upgrading to 3.9.2 until the hue adapter is started and then crashes right away with TypeError: Cannot read properties of undefined (reading 'split'):

2023-06-14 09:11:42.324  - info: hue.0 (2186349) starting. Version 3.9.2 in /opt/iobroker/node_modules/iobroker.hue, node: v18.16.0, js-controller: 4.0.24
2023-06-14 09:11:43.013  - info: hue.0 (2186349) Push connection established
2023-06-14 09:11:43.458  - info: hue.0 (2186349) skip switch: Daylight.configured
2023-06-14 09:11:43.458  - info: hue.0 (2186349) skip switch: Daylight.sunriseoffset
2023-06-14 09:11:43.459  - info: hue.0 (2186349) skip switch: Daylight.sunsetoffset
2023-06-14 09:11:43.463  - info: hue.0 (2186349) skip switch: Dimmer Switch 8 SceneCycle.status
2023-06-14 09:11:43.465  - info: hue.0 (2186349) skip switch: cycling.status
2023-06-14 09:11:43.467  - info: hue.0 (2186349) skip switch: cycleState.status
2023-06-14 09:11:43.468  - warn: hue.0 (2186349) channel "cycling" already exists, using "cycling_CLIPGenericStatus" for sensor 94
2023-06-14 09:11:43.468  - info: hue.0 (2186349) skip switch: cycling CLIPGenericStatus.status
2023-06-14 09:11:43.469  - warn: hue.0 (2186349) channel "cycleState" already exists, using "cycleState_CLIPGenericStatus" for sensor 95
2023-06-14 09:11:43.470  - info: hue.0 (2186349) skip switch: cycleState CLIPGenericStatus.status
2023-06-14 09:11:43.472  - info: hue.0 (2186349) skip switch: Start/stop.status
2023-06-14 09:11:43.474  - warn: hue.0 (2186349) channel "cycling" already exists, using "cycling_CLIPGenericStatus" for sensor 100
2023-06-14 09:11:43.474  - info: hue.0 (2186349) skip switch: cycling CLIPGenericStatus.status
2023-06-14 09:11:43.476  - warn: hue.0 (2186349) channel "cycleState" already exists, using "cycleState_CLIPGenericStatus" for sensor 101
2023-06-14 09:11:43.476  - info: hue.0 (2186349) skip switch: cycleState CLIPGenericStatus.status
2023-06-14 09:11:43.477  - info: hue.0 (2186349) created/updated 13 sensor channels
2023-06-14 09:11:46.304  - info: hue.0 (2186349) created/updated 37 light channels
2023-06-14 09:11:46.324  - warn: hue.0 (2186349) channel "Keller" already exists, using "Keller_Room" for group 4
2023-06-14 09:11:46.373  - info: hue.0 (2186349) created/updated 23 groups channels
2023-06-14 09:11:46.392  - info: hue.0 (2186349) created/updated 178 scenes
2023-06-14 09:11:46.392  - info: hue.0 (2186349) creating/updating bridge device
2023-06-14 09:11:46.718  - error: hue.0 (2186349) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
2023-06-14 09:11:46.719  - error: hue.0 (2186349) unhandled promise rejection: Cannot read properties of undefined (reading 'split')
2023-06-14 09:11:46.803  - error: hue.0 (2186349) TypeError: Cannot read properties of undefined (reading 'split')
    at Hue.handleUpdate (/opt/iobroker/node_modules/iobroker.hue/src/main.ts:1100:42)
    at HuePushClient.<anonymous> (/opt/iobroker/node_modules/iobroker.hue/src/main.ts:1083:30)
    at HuePushClient.emit (node:events:513:28)
    at HuePushClient.emit (node:domain:489:12)
    at _emit (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:287:17)
    at parseEventStreamLine (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:302:9)
    at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:259:11)
    at IncomingMessage.emit (node:events:513:28)
    at IncomingMessage.emit (node:domain:489:12)
    at addChunk (node:internal/streams/readable:324:12)
2023-06-14 09:11:46.803  - error: hue.0 (2186349) Cannot read properties of undefined (reading 'split')
2023-06-14 09:11:46.828  - info: hue.0 (2186349) cleaned everything up...
2023-06-14 09:11:46.828  - info: hue.0 (2186349) terminating
2023-06-14 09:11:46.828  - warn: hue.0 (2186349) Terminated (UNCAUGHT_EXCEPTION): Without reason
2023-06-14 09:11:47.333  - error: hue.0 (2186349) Could not sync object hue.0.Toilette_(OG).colormode: DB closed
2023-06-14 09:11:47.334  - error: hue.0 (2186349) Could not sync object hue.0.Toilette_(OG).mode: DB closed
2023-06-14 09:11:47.475  - error: host.iobroker Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
2023-06-14 09:11:47.476  - error: host.iobroker Caught by controller[0]: TypeError: Cannot read properties of undefined (reading 'split')
2023-06-14 09:11:47.476  - error: host.iobroker Caught by controller[0]:     at Hue.handleUpdate (/opt/iobroker/node_modules/iobroker.hue/src/main.ts:1100:42)
2023-06-14 09:11:47.477  - error: host.iobroker Caught by controller[0]:     at HuePushClient.<anonymous> (/opt/iobroker/node_modules/iobroker.hue/src/main.ts:1083:30)
2023-06-14 09:11:47.477  - error: host.iobroker Caught by controller[0]:     at HuePushClient.emit (node:events:513:28)
2023-06-14 09:11:47.477  - error: host.iobroker Caught by controller[0]:     at HuePushClient.emit (node:domain:489:12)
2023-06-14 09:11:47.478  - error: host.iobroker Caught by controller[0]:     at _emit (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:287:17)
2023-06-14 09:11:47.478  - error: host.iobroker Caught by controller[0]:     at parseEventStreamLine (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:302:9)
2023-06-14 09:11:47.480  - error: host.iobroker Caught by controller[0]:     at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/eventsource/lib/eventsource.js:259:11)
2023-06-14 09:11:47.480  - error: host.iobroker Caught by controller[0]:     at IncomingMessage.emit (node:events:513:28)
2023-06-14 09:11:47.480  - error: host.iobroker Caught by controller[0]:     at IncomingMessage.emit (node:domain:489:12)
2023-06-14 09:11:47.480  - error: host.iobroker Caught by controller[0]:     at addChunk (node:internal/streams/readable:324:12)
2023-06-14 09:11:47.480  - error: host.iobroker instance system.adapter.hue.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
2023-06-14 09:11:47.481  - info: host.iobroker Restart adapter system.adapter.hue.0 because enabled
2023-06-14 09:11:56.697  - warn: hm-rega.0 (1141) Script "!# programs.fn 1.3 !# Dieses Script gibt eine Liste der Programme als JSON Strin" ignored, because still pending.
2023-06-14 09:11:59.829  - info: host.iobroker "system.adapter.hue.0" disabled
2023-06-14 09:12:18.973  - error: hue.0 (2186389) adapter disabled
2023-06-14 09:12:18.979  - warn: hue.0 (2186389) Terminated (NO_ADAPTER_CONFIG_FOUND): Without reason
2023-06-14 09:12:19.166  - info: nut.0 (1247) State value to set for "nut.0.battery.charge" has to be type "string" but received type "number" 
2023-06-14 09:12:19.636  - error: host.iobroker instance system.adapter.hue.0 terminated with code 3 (NO_ADAPTER_CONFIG_FOUND)
2023-06-14 09:12:19.637  - info: host.iobroker Do not restart adapter system.adapter.hue.0 because disabled or deleted

Versions:

  • Adapter version: 3.9.2
  • JS-Controller version: 4.0.24
  • Node version: 18.16.0
  • Operating system: Ubuntu 22.04 LTS
  • Bridge model: Philips Hue Bridge

Additional context
Downgrading to the last 3.8.x version (3.8.0) immediately solves the issue.

@foxriver76
Copy link
Member

Thanks for reporting, it seems the property which we assumed mandatory is optional, I will add a guard.

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

No branches or pull requests

2 participants