Zigbe2mqtt doesn't start with system startup

I have problem with zigbee2mqtt service. It doesn’t start with system startup. Manual start by systemctl shows error:

[12:37:18] openhabian@openhab:~$ systemctl status zigbee2mqtt.service
● zigbee2mqtt.service - zigbee2mqtt
Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Mon 2021-04-26 12:37:17 CEST; 4s ago
Process: 5395 ExecStart=/usr/bin/npm start (code=killed, signal=TERM)
Main PID: 5395 (code=killed, signal=TERM)

Apr 24 11:38:34 openhab npm[5395]: (node:5407) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will termina
Apr 26 12:37:17 openhab systemd[1]: Stopping zigbee2mqtt…
Apr 26 12:37:17 openhab npm[5395]: Zigbee2MQTT:error 2021-04-26 12:37:17: Failed to call ‘OnEvent’ ‘stop’ (TypeError: Cannot read property ‘getDevices’ of undefined
Apr 26 12:37:17 openhab npm[5395]: at Zigbee.getClients (/opt/zigbee2mqtt/lib/zigbee.js:153:30)
Apr 26 12:37:17 openhab npm[5395]: at OnEvent.stop (/opt/zigbee2mqtt/lib/extension/onEvent.js:23:42)
Apr 26 12:37:17 openhab npm[5395]: at Controller.callExtensionMethod (/opt/zigbee2mqtt/lib/controller.js:382:44)
Apr 26 12:37:17 openhab npm[5395]: at async Controller.stop (/opt/zigbee2mqtt/lib/controller.js:189:9)
Apr 26 12:37:17 openhab npm[5395]: at async stop (/opt/zigbee2mqtt/index.js:47:5)
Apr 26 12:37:17 openhab npm[5395]: at async process.handleQuit (/opt/zigbee2mqtt/index.js:53:9))
Apr 26 12:37:17 openhab systemd[1]: zigbee2mqtt.service: Main process exited, code=killed, status=15/TERM

If I use

sudo npm start

everything works ok:

[12:38:46] openhabian@openhab:/opt/zigbee2mqtt$ sudo npm start
[sudo] password for openhabian:

zigbee2mqtt@1.18.2 start /opt/zigbee2mqtt
node index.js

Zigbee2MQTT:info 2021-04-26 12:38:58: Logging to console and directory: ‘/opt/zigbee2mqtt/data/log/2021-04-26.12-38-56’ filename: log.txt
Zigbee2MQTT:info 2021-04-26 12:38:58: Starting Zigbee2MQTT version 1.18.2 (commit #abd8a092)
Zigbee2MQTT:info 2021-04-26 12:38:58: Starting zigbee-herdsman (0.13.88)
Zigbee2MQTT:info 2021-04-26 12:39:09: zigbee-herdsman started
Zigbee2MQTT:info 2021-04-26 12:39:09: Coordinator firmware version: ‘{“meta”:{“maintrel”:1,“majorrel”:2,“minorrel”:7,“product”:1,“revision”:20210120,“transportrev”:2},“type”:“zStack3x0”}’
Zigbee2MQTT:info 2021-04-26 12:39:09: Currently 1 devices are joined:
Zigbee2MQTT:info 2021-04-26 12:39:09: pokoj_patio_wlacznik (0x00124b001800d1c9): TI0001 - Livolo Zigbee switch (1 and 2 gang) (EndDevice)
Zigbee2MQTT:warn 2021-04-26 12:39:09: permit_join set to true in configuration.yaml.
Zigbee2MQTT:warn 2021-04-26 12:39:09: Allowing new devices to join.
Zigbee2MQTT:warn 2021-04-26 12:39:09: Set permit_join to false once you joined all devices.
Zigbee2MQTT:info 2021-04-26 12:39:09: Zigbee: allowing new devices to join.
Zigbee2MQTT:info 2021-04-26 12:39:10: Connecting to MQTT server at mqtt://localhost
Zigbee2MQTT:info 2021-04-26 12:39:12: MQTT publish: topic ‘zigbee2mqtt/bridge/event’, payload ‘{“data”:{“friendly_name”:“pokoj_patio_wlacznik”,“ieee_address”:“0x00124b001800d1c9”},“type”:“device_announce”}’
Zigbee2MQTT:info 2021-04-26 12:39:12: Connected to MQTT server
Zigbee2MQTT:info 2021-04-26 12:39:12: MQTT publish: topic ‘zigbee2mqtt/bridge/state’, payload ‘online’
Zigbee2MQTT:info 2021-04-26 12:39:12: MQTT publish: topic ‘zigbee2mqtt/pokoj_patio_wlacznik/state_left’, payload ‘OFF’
Zigbee2MQTT:info 2021-04-26 12:39:12: MQTT publish: topic ‘zigbee2mqtt/pokoj_patio_wlacznik/state_right’, payload ‘OFF’
Zigbee2MQTT:info 2021-04-26 12:39:12: MQTT publish: topic ‘zigbee2mqtt/bridge/log’, payload ‘{“message”:“announce”,“meta”:{“friendly_name”:“pokoj_patio_wlacznik”},“type”:“device_announced”}’
Zigbee2MQTT:info 2021-04-26 12:39:12: MQTT publish: topic ‘zigbee2mqtt/pokoj_patio_wlacznik/availability’, payload ‘online’
Zigbee2MQTT:info 2021-04-26 12:39:13: MQTT publish: topic ‘zigbee2mqtt/bridge/config’, payload ‘{“commit”:“abd8a092”,“coordinator”:{“meta”:{“maintrel”:1,“majorrel”:2,“minorrel”:7,“product”:1,“revision”:20210120,“transportrev”:2},“type”:“zStack3x0”},“log_level”:“info”,“network”:{“channel”:26,“extendedPanID”:“0xdddddddddddddddd”,“panID”:6754},“permit_join”:true,“version”:“1.18.2”}’
Zigbee2MQTT:info 2021-04-26 12:39:13: MQTT publish: topic ‘zigbee2mqtt/pokoj_patio_wlacznik/availability’, payload ‘online’
Zigbee2MQTT:info 2021-04-26 12:39:13: MQTT publish: topic ‘zigbee2mqtt/pokoj_patio_wlacznik/state_left’, payload ‘OFF’
Zigbee2MQTT:info 2021-04-26 12:39:13: MQTT publish: topic ‘zigbee2mqtt/pokoj_patio_wlacznik/state_right’, payload ‘OFF’
Zigbee2MQTT:info 2021-04-26 12:39:13: MQTT publish: topic ‘zigbee2mqtt/pokoj_patio_wlacznik/linkquality’, payload ‘111’

Not an expert as I did not run into this issue with my zigbee2mqtt, but a quick Google of TypeError: Cannot read property ‘getDevices’ of undefined showed that it might be connected to a device not paired correctly.

Could that be?
I assume you followed the zigbee2mqtt guide on how to make it run as daemon?

but why if I run sudo npm everything works correctly?