Upgrade Hue dimmer switch not completing

When trying to upgrade a Hue dimmer switch (model RWL021) it looks like it is sending the correct recent firmware, but at the end it seems to fail and stay on the current version. Below is a snapshot of the debug log, showing the progress and the final messages:

debug 2020-10-09 20:10:36: Received MQTT message on 'zigbee2mqtt/bridge/ota_update/update' with data 'switch_landing_1st'
info  2020-10-09 20:10:36: Updating 'switch_landing_1st' to latest firmware
info  2020-10-09 20:10:36: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"meta":{"device":"switch_landing_1st","status":"update_in_progress"},"msg":"Updating 'switch_landing_1st' to latest firmware","type":"ota_update"}'
debug 2020-10-09 20:10:40: Received Zigbee message from 'switch_landing_1st', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20160302","swBuildId":"5.45.1.17846"}' from endpoint 1 with groupID 0
debug 2020-10-09 20:10:40: No converter available for '324131092621' with cluster 'genBasic' and type 'readResponse' and data '{"dateCode":"20160302","swBuildId":"5.45.1.17846"}'
debug 2020-10-09 20:10:40: Updating to latest '0x001788010634d4e1' (RWL021)
debug 2020-10-09 20:10:40: Using endpoint '2'
debug 2020-10-09 20:10:40: Received Zigbee message from 'switch_landing_1st', type 'commandHueNotification', cluster 'manuSpecificPhilips', data '{"button":4,"time":0,"type":0,"unknown1":3145728,"unknown2":0}' from endpoint 2 with groupID 0
debug 2020-10-09 20:10:40: Received Zigbee message from 'switch_landing_1st', type 'commandOffWithEffect', cluster 'genOnOff', data '{"effectid":0,"effectvariant":0}' from endpoint 1 with groupID 0
debug 2020-10-09 20:10:40: Received Zigbee message from 'switch_landing_1st', type 'commandHueNotification', cluster 'manuSpecificPhilips', data '{"button":4,"time":1,"type":2,"unknown1":3145728,"unknown2":0}' from endpoint 2 with groupID 0
info  2020-10-09 20:10:40: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"action":"off-press","battery":100,"brightness":255,"counter":1,"duration":0,"linkquality":21,"update_available":true}'
info  2020-10-09 20:10:40: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"action":"","battery":100,"brightness":255,"counter":1,"linkquality":21,"update_available":true}'
info  2020-10-09 20:10:40: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st/action', payload 'off-press'
debug 2020-10-09 20:10:45: Received Zigbee message from 'switch_landing_1st', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":1107314102,"imageType":265,"manufacturerCode":4107}' from endpoint 2 with groupID 0
debug 2020-10-09 20:10:45: Got OTA request '{"fieldControl":0,"manufacturerCode":4107,"imageType":265,"fileVersion":1107314102}'
debug 2020-10-09 20:10:45: getNewImage for '0x001788010634d4e1', meta {"fileVersion":1107324829,"fileSize":240760,"url":"http://fds.dc1.philips.com/firmware/ZGB_100B_0109/1107324829/Switch-ATmega_6.1.1.28573_0012.sbl-ota"}
debug 2020-10-09 20:10:45: getNewImage for '0x001788010634d4e1', image header {"otaUpgradeFileIdentifier":{"type":"Buffer","data":[30,241,238,11]},"otaHeaderVersion":256,"otaHeaderLength":56,"otaHeaderFieldControl":0,"manufacturerCode":4107,"imageType":265,"fileVersion":1107324829,"zigbeeStackVersion":2,"otaHeaderString":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","totalImageSize":240760}
debug 2020-10-09 20:10:46: Got new image for '0x001788010634d4e1'
debug 2020-10-09 20:10:46: Starting upgrade
debug 2020-10-09 20:10:47: Received Zigbee message from 'switch_landing_1st', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":1107314102,"imageType":265,"manufacturerCode":4107}' from endpoint 2 with groupID 0
debug 2020-10-09 20:10:53: OTA update at 0%, remaining Infinity seconds
info  2020-10-09 20:10:53: Update of 'switch_landing_1st' at 0.00%
info  2020-10-09 20:10:53: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"battery":100,"brightness":255,"counter":1,"linkquality":21,"update_available":false}'
info  2020-10-09 20:10:53: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Update of 'switch_landing_1st' at 0.00%","meta":{"device":"switch_landing_1st","progress":0,"status":"update_progress"},"type":"ota_update"}'
debug 2020-10-09 20:11:23: OTA update at 1.12%, remaining 3341.289347376201 seconds
info  2020-10-09 20:11:23: Update of 'switch_landing_1st' at 1.12%, +- 56 minutes remaining
...
debug 2020-10-09 20:49:18: OTA update at 87.75%, remaining 322.9210118529178 seconds
...
info  2020-10-09 20:56:19: Update of 'switch_landing_1st' at 100.00%
info  2020-10-09 20:56:19: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"battery":100,"brightness":255,"counter":1,"linkquality":13,"update_available":false}'
info  2020-10-09 20:56:19: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Update of 'switch_landing_1st' at 100.00%","meta":{"device":"switch_landing_1st","progress":100,"status":"update_progress"},"type":"ota_update"}'
debug 2020-10-09 20:56:23: Received Zigbee message from 'switch_landing_1st', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20160302","swBuildId":"5.45.1.17846"}' from endpoint 1 with groupID 0
debug 2020-10-09 20:56:23: No converter available for '324131092621' with cluster 'genBasic' and type 'readResponse' and data '{"dateCode":"20160302","swBuildId":"5.45.1.17846"}'
info  2020-10-09 20:56:23: Finished update of 'switch_landing_1st', from '{"dateCode":"20160302","softwareBuildID":"5.45.1.17846"}' to '{"dateCode":"20160302","softwareBuildID":"5.45.1.17846"}'
info  2020-10-09 20:56:23: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"battery":100,"brightness":255,"counter":1,"linkquality":13,"update_available":false}'
info  2020-10-09 20:56:23: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"switch_landing_1st","meta":{"device":"switch_landing_1st","from":{"date_code":"20160302","software_build_id":"5.45.1.17846"},"status":"update_succeeded","to":{"date_code":"20160302","software_build_id":"5.45.1.17846"}},"type":"ota_update"}'
debug 2020-10-09 20:56:28: Received Zigbee message from 'switch_landing_1st', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":1107314102,"imageType":265,"manufacturerCode":4107}' from endpoint 2 with groupID 0
debug 2020-10-09 20:56:28: Check if update available for '0x001788010634d4e1' (RWL021)
debug 2020-10-09 20:56:28: Is new image available for '0x001788010634d4e1', current '{"fieldControl":0,"manufacturerCode":4107,"imageType":265,"fileVersion":1107314102}', latest meta '{"fileVersion":1107324829,"fileSize":240760,"url":"http://fds.dc1.philips.com/firmware/ZGB_100B_0109/1107324829/Switch-ATmega_6.1.1.28573_0012.sbl-ota"}'
debug 2020-10-09 20:56:28: Update available for '0x001788010634d4e1': YES

It all looks to go correct and still won’t complete. Is this a bug or doesn’t it work with the current (5.45.1.17846) firmware and have to use the Hue Bridge?