Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.1k stars 1.68k forks source link

Z2M will not start after upgrading firmware to Ember 7.4.3.0 #22932

Open Lampornis opened 5 months ago

Lampornis commented 5 months ago

What happened?

I upgraded my Sonoff Dongle E to Ember 7.4.3.0. After doing so Z2M fails to start. Here are the errors I am getting:

at EmberAdapter.getStoredBackup (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1363:23)
at EmberAdapter.initTrustCenter (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1156:37)
at EmberAdapter.initEzsp (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:865:19)
at EmberAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:2683:24)
at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:127:29)
at Zigbee.start (/app/lib/zigbee.ts:62:27)
at Controller.start (/app/lib/controller.ts:109:27)
at start (/app/index.js:107:5)

[07:13:06] INFO: Preparing to start... [07:13:06] INFO: Socat not enabled [07:13:07] INFO: Starting Zigbee2MQTT... [2024-06-04 07:13:10] info: z2m: Logging to console, file (filename: log.log) [2024-06-04 07:13:10] info: z2m: Starting Zigbee2MQTT version 1.38.0 (commit #unknown) [2024-06-04 07:13:10] info: z2m: Starting zigbee-herdsman (0.49.2) [2024-06-04 07:13:10] info: zh:ember: Using default stack config. [2024-06-04 07:13:10] info: zh:ember: ======== Ember Adapter Starting ======== [2024-06-04 07:13:10] info: zh:ember:ezsp: ======== EZSP starting ======== [2024-06-04 07:13:10] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:13:10] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control. [2024-06-04 07:13:10] info: zh:ember:uart:ash: Serial port opened [2024-06-04 07:13:10] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:13:10] error: zh:ember:uart:ash: Received frame with CRC error [2024-06-04 07:13:10] error: zh:ember:uart:ash: Received ERROR from NCP while connecting, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT. [2024-06-04 07:13:10] error: zh:ember:uart:ash: ASH disconnected | NCP status: ASH_NCP_FATAL_ERROR [2024-06-04 07:13:10] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:13:10] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:13:10] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:13:11] info: zh:ember:uart:ash: ======== ASH connected ======== [2024-06-04 07:13:11] info: zh:ember:uart:ash: ======== ASH started ======== [2024-06-04 07:13:11] info: zh:ember:ezsp: ======== EZSP started ======== [2024-06-04 07:13:11] info: zh:ember: [STACK STATUS] Network up. [2024-06-04 07:13:11] error: z2m: Error while starting zigbee-herdsman [2024-06-04 07:13:11] error: z2m: Failed to start zigbee [2024-06-04 07:13:11] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions [2024-06-04 07:13:11] error: z2m: Exiting... [2024-06-04 07:13:11] error: z2m: Error: [BACKUP] Current backup file is from an unsupported EZSP version (min: 12). at EmberAdapter.getStoredBackup (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1363:23) at EmberAdapter.initTrustCenter (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1156:37) at EmberAdapter.initEzsp (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:865:19) at EmberAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:2683:24) at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:127:29) at Zigbee.start (/app/lib/zigbee.ts:62:27) at Controller.start (/app/lib/controller.ts:109:27) at start (/app/index.js:107:5) [07:22:10] INFO: Preparing to start... [07:22:10] INFO: Socat not enabled [07:22:11] INFO: Starting Zigbee2MQTT... [2024-06-04 07:22:13] info: z2m: Logging to console, file (filename: log.log) [2024-06-04 07:22:13] info: z2m: Starting Zigbee2MQTT version 1.38.0 (commit #unknown) [2024-06-04 07:22:13] info: z2m: Starting zigbee-herdsman (0.49.2) [2024-06-04 07:22:13] info: zh:ember: Using default stack config. [2024-06-04 07:22:13] info: zh:ember: ======== Ember Adapter Starting ======== [2024-06-04 07:22:13] info: zh:ember:ezsp: ======== EZSP starting ======== [2024-06-04 07:22:13] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:22:13] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control. [2024-06-04 07:22:13] info: zh:ember:uart:ash: Serial port opened [2024-06-04 07:22:13] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:22:13] error: zh:ember:uart:ash: Received frame with CRC error [2024-06-04 07:22:13] error: zh:ember:uart:ash: Received ERROR from NCP while connecting, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT. [2024-06-04 07:22:13] error: zh:ember:uart:ash: ASH disconnected | NCP status: ASH_NCP_FATAL_ERROR [2024-06-04 07:22:13] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:22:13] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:22:13] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:22:13] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:22:13] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:22:14] info: zh:ember:uart:ash: ======== ASH connected ======== [2024-06-04 07:22:14] info: zh:ember:uart:ash: ======== ASH started ======== [2024-06-04 07:22:14] info: zh:ember:ezsp: ======== EZSP started ======== [2024-06-04 07:22:15] info: zh:ember: [STACK STATUS] Network up. [2024-06-04 07:22:15] error: z2m: Error while starting zigbee-herdsman [2024-06-04 07:22:15] error: z2m: Failed to start zigbee [2024-06-04 07:22:15] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions [2024-06-04 07:22:15] error: z2m: Exiting... [2024-06-04 07:22:15] error: z2m: Error: [BACKUP] Current backup file is from an unsupported EZSP version (min: 12). at EmberAdapter.getStoredBackup (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1363:23) at EmberAdapter.initTrustCenter (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1156:37) at EmberAdapter.initEzsp (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:865:19) at EmberAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:2683:24) at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:127:29) at Zigbee.start (/app/lib/zigbee.ts:62:27) at Controller.start (/app/lib/controller.ts:109:27) at start (/app/index.js:107:5) [07:22:44] INFO: Preparing to start... [07:22:44] INFO: Socat not enabled [07:22:44] INFO: Starting Zigbee2MQTT... [2024-06-04 07:22:47] info: z2m: Logging to console, file (filename: log.log) [2024-06-04 07:22:47] info: z2m: Starting Zigbee2MQTT version 1.38.0 (commit #unknown) [2024-06-04 07:22:47] info: z2m: Starting zigbee-herdsman (0.49.2) [2024-06-04 07:22:47] info: zh:ember: Using default stack config. [2024-06-04 07:22:47] info: zh:ember: ======== Ember Adapter Starting ======== [2024-06-04 07:22:47] info: zh:ember:ezsp: ======== EZSP starting ======== [2024-06-04 07:22:47] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:22:47] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control. [2024-06-04 07:22:47] info: zh:ember:uart:ash: Serial port opened [2024-06-04 07:22:47] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:22:47] error: zh:ember:uart:ash: Received frame with CRC error [2024-06-04 07:22:47] error: zh:ember:uart:ash: Received ERROR from NCP while connecting, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT. [2024-06-04 07:22:47] error: zh:ember:uart:ash: ASH disconnected | NCP status: ASH_NCP_FATAL_ERROR [2024-06-04 07:22:47] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:22:47] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:22:47] info: zh:ember:uart:ash: ======== ASH starting ========

What did you expect to happen?

I expected that Z2M would start normally and list all my added devices.

How to reproduce it (minimal and precise)

Simply try to start Z2M.

Zigbee2MQTT version

1.38.0-1

Adapter firmware version

Ember 7.4.3.0

Adapter

SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20220815193711

Setup

Add on Home Assistant, Synology NAS DS1522+ VMM

Debug log

[2024-06-04 07:13:10] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:13:10] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control. [2024-06-04 07:13:10] info: zh:ember:uart:ash: Serial port opened [2024-06-04 07:13:10] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:13:10] error: zh:ember:uart:ash: Received frame with CRC error [2024-06-04 07:13:10] error: zh:ember:uart:ash: Received ERROR from NCP while connecting, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT. [2024-06-04 07:13:10] error: zh:ember:uart:ash: ASH disconnected | NCP status: ASH_NCP_FATAL_ERROR [2024-06-04 07:13:10] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:13:10] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:13:10] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:13:11] info: zh:ember:uart:ash: ======== ASH connected ======== [2024-06-04 07:13:11] info: zh:ember:uart:ash: ======== ASH started ======== [2024-06-04 07:13:11] info: zh:ember:ezsp: ======== EZSP started ======== [2024-06-04 07:13:11] info: zh:ember: [STACK STATUS] Network up. [2024-06-04 07:13:11] error: z2m: Error while starting zigbee-herdsman [2024-06-04 07:13:11] error: z2m: Failed to start zigbee [2024-06-04 07:13:11] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions [2024-06-04 07:13:11] error: z2m: Exiting... [2024-06-04 07:13:11] error: z2m: Error: [BACKUP] Current backup file is from an unsupported EZSP version (min: 12). at EmberAdapter.getStoredBackup (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1363:23) at EmberAdapter.initTrustCenter (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1156:37) at EmberAdapter.initEzsp (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:865:19) at EmberAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:2683:24) at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:127:29) at Zigbee.start (/app/lib/zigbee.ts:62:27) at Controller.start (/app/lib/controller.ts:109:27) at start (/app/index.js:107:5) [07:22:10] INFO: Preparing to start... [07:22:10] INFO: Socat not enabled [07:22:11] INFO: Starting Zigbee2MQTT... [2024-06-04 07:22:13] info: z2m: Logging to console, file (filename: log.log) [2024-06-04 07:22:13] info: z2m: Starting Zigbee2MQTT version 1.38.0 (commit #unknown) [2024-06-04 07:22:13] info: z2m: Starting zigbee-herdsman (0.49.2) [2024-06-04 07:22:13] info: zh:ember: Using default stack config. [2024-06-04 07:22:13] info: zh:ember: ======== Ember Adapter Starting ======== [2024-06-04 07:22:13] info: zh:ember:ezsp: ======== EZSP starting ======== [2024-06-04 07:22:13] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:22:13] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control. [2024-06-04 07:22:13] info: zh:ember:uart:ash: Serial port opened [2024-06-04 07:22:13] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:22:13] error: zh:ember:uart:ash: Received frame with CRC error [2024-06-04 07:22:13] error: zh:ember:uart:ash: Received ERROR from NCP while connecting, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT. [2024-06-04 07:22:13] error: zh:ember:uart:ash: ASH disconnected | NCP status: ASH_NCP_FATAL_ERROR [2024-06-04 07:22:13] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:22:13] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:22:13] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:22:13] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:22:13] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:22:14] info: zh:ember:uart:ash: ======== ASH connected ======== [2024-06-04 07:22:14] info: zh:ember:uart:ash: ======== ASH started ======== [2024-06-04 07:22:14] info: zh:ember:ezsp: ======== EZSP started ======== [2024-06-04 07:22:15] info: zh:ember: [STACK STATUS] Network up. [2024-06-04 07:22:15] error: z2m: Error while starting zigbee-herdsman [2024-06-04 07:22:15] error: z2m: Failed to start zigbee [2024-06-04 07:22:15] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions [2024-06-04 07:22:15] error: z2m: Exiting... [2024-06-04 07:22:15] error: z2m: Error: [BACKUP] Current backup file is from an unsupported EZSP version (min: 12). at EmberAdapter.getStoredBackup (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1363:23) at EmberAdapter.initTrustCenter (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1156:37) at EmberAdapter.initEzsp (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:865:19) at EmberAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:2683:24) at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:127:29) at Zigbee.start (/app/lib/zigbee.ts:62:27) at Controller.start (/app/lib/controller.ts:109:27) at start (/app/index.js:107:5) [07:22:44] INFO: Preparing to start... [07:22:44] INFO: Socat not enabled [07:22:44] INFO: Starting Zigbee2MQTT... [2024-06-04 07:22:47] info: z2m: Logging to console, file (filename: log.log) [2024-06-04 07:22:47] info: z2m: Starting Zigbee2MQTT version 1.38.0 (commit #unknown) [2024-06-04 07:22:47] info: z2m: Starting zigbee-herdsman (0.49.2) [2024-06-04 07:22:47] info: zh:ember: Using default stack config. [2024-06-04 07:22:47] info: zh:ember: ======== Ember Adapter Starting ======== [2024-06-04 07:22:47] info: zh:ember:ezsp: ======== EZSP starting ======== [2024-06-04 07:22:47] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:22:47] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control. [2024-06-04 07:22:47] info: zh:ember:uart:ash: Serial port opened [2024-06-04 07:22:47] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:22:47] error: zh:ember:uart:ash: Received frame with CRC error [2024-06-04 07:22:47] error: zh:ember:uart:ash: Received ERROR from NCP while connecting, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT. [2024-06-04 07:22:47] error: zh:ember:uart:ash: ASH disconnected | NCP status: ASH_NCP_FATAL_ERROR [2024-06-04 07:22:47] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR. [2024-06-04 07:22:47] info: zh:ember:uart:ash: ======== ASH NCP reset ======== [2024-06-04 07:22:47] info: zh:ember:uart:ash: ======== ASH starting ======== [2024-06-04 07:22:48] info: zh:ember:uart:ash: ======== ASH connected ======== [2024-06-04 07:22:48] info: zh:ember:uart:ash: ======== ASH started ======== [2024-06-04 07:22:48] info: zh:ember:ezsp: ======== EZSP started ======== [2024-06-04 07:22:48] info: zh:ember: [STACK STATUS] Network up. [2024-06-04 07:22:48] error: z2m: Error while starting zigbee-herdsman [2024-06-04 07:22:48] error: z2m: Failed to start zigbee [2024-06-04 07:22:48] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions [2024-06-04 07:22:48] error: z2m: Exiting... [2024-06-04 07:22:48] error: z2m: Error: [BACKUP] Current backup file is from an unsupported EZSP version (min: 12). at EmberAdapter.getStoredBackup (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1363:23) at EmberAdapter.initTrustCenter (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1156:37) at EmberAdapter.initEzsp (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:865:19) at EmberAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:2683:24) at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:127:29) at Zigbee.start (/app/lib/zigbee.ts:62:27) at Controller.start (/app/lib/controller.ts:109:27) at start (/app/index.js:107:5)

Lampornis commented 5 months ago

I have resolved the issue. Had an old backup that caused it to want to load the old firmware. Once I deleted it Z2M loaded normally with the new ember firmware. A quick search suggests that I am not the only one who has had this issue so might be good to explore why this happens. Thanks!

LaurentChardin commented 5 months ago

Out of curiosity, from which version did you upgrade to 7.4.3.0 ?

Lampornis commented 5 months ago

Initially I upgraded from a really old version of EZSP but can’t remember which version it was. Once I set up the Dongle E it always worked well so never messed with it. When I saw that the old firmware was no longer going to be supported I upgraded to ember. First to 7.4.2.0, but when Z2M would not load I started reading every forum on the topic that I could find. One said that upgrading to 7.4.3.0 solved all issues so I upgraded again. Was not a fix for me. Turns out I had two issues. Discovered that when I unplugged my dongle from my Synology NAS that it unmounted from my VM (picked this up in the log). When I corrected that Z2M still would not start. Found another forum that suggested the presence of old backups was causing an issue. Found one old backup, deleted it, after which Z2M fired up nicely. So, now all is well. Sorry for the long answer to your question.

Cheers,

Don

Don & Theo Powers @.***

On Jun 4, 2024, at 10:11 AM, Laurent Chardin @.***> wrote:

Out of curiosity, from which version did you upgrade to 7.4.3.0 ?

— Reply to this email directly, view it on GitHub https://github.com/Koenkk/zigbee2mqtt/issues/22932#issuecomment-2147640949, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOFUKRQKP5XJ5EKHHIZHWNLZFXDH5AVCNFSM6AAAAABIYKWIXGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBXGY2DAOJUHE. You are receiving this because you authored the thread.

LaurentChardin commented 5 months ago

I guess this is what you were looking for : https://smarthomescene.com/guides/how-to-use-ember-driver-with-efr32mg21-zigbee-adapters/

and my comment too: https://smarthomescene.com/guides/how-to-use-ember-driver-with-efr32mg21-zigbee-adapters/#comment-12641

The old backup could have been used, but you need to do an intermediary step with firmware 7.3.x using the ezsp adapter (and run it once to force the format change), than upgrade the firmware to 7.4.x using the ember adapter : if you move directly to 7.4.0 with ember, this is where you can get the issue with the backup format.

Lampornis commented 5 months ago

Thanks! Good to know.

Cheers,

Don

Don & Theo Powers @.***

On Jun 4, 2024, at 10:51 AM, Laurent Chardin @.***> wrote:

I guess this is what you were looking for : https://smarthomescene.com/guides/how-to-use-ember-driver-with-efr32mg21-zigbee-adapters/

and my comment too: https://smarthomescene.com/guides/how-to-use-ember-driver-with-efr32mg21-zigbee-adapters/#comment-12641

— Reply to this email directly, view it on GitHub https://github.com/Koenkk/zigbee2mqtt/issues/22932#issuecomment-2147738561, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOFUKRQX7MR6W777P7BN6LTZFXIATAVCNFSM6AAAAABIYKWIXGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBXG4ZTQNJWGE. You are receiving this because you authored the thread.