XIAO ESP32S3 ULP Flash issue

I have an issue flashing an example program containing ULP code (esp-idf/examples/system/ulp/ulp_riscv/adc at master · espressif/esp-idf · GitHub) .
During the flash steps the device gets lost and the process aborts. After this the device cannot be accessed, even after re-plugging it. The only solution is activating the bootloader mode manually as described here:

What I tried:

Flashing any other example without ULP code works fine.

I tried it on three PCs, different cables, with Linux or Windows and with esp-idf 5.2 and 5.3 and with Arduino 2.x. The result is always the same: The device gets lost during the steps of flashing the several parts.

I tried it with FSM and RISC-V-ULP, the issue appears in both cases.

I installed the simple_ota_example on the device and flashed the ULP example via OTA and it could be flashed and works.

I guess it has something to do with the internal USB handling by the ESP32S3 controller.

This is the flash log from the hello_world example:

Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3)
Crystal is 40MHz
MAC: 74:4d:bd:81:29:28
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00005fff...
Flash will be erased from 0x00010000 to 0x00045fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 21072 bytes to 13079...
Writing at 0x00000000... (100 %)
Wrote 21072 bytes (13079 compressed) at 0x00000000 in 0.3 seconds (effective 509.4 kbit/s)...
Hash of data verified.
Compressed 220032 bytes to 111428...
Writing at 0x00010000... (14 %)
Writing at 0x0001e620... (28 %)
Writing at 0x000251d4... (42 %)
Writing at 0x0002b49e... (57 %)
Writing at 0x00032f5b... (71 %)
Writing at 0x0003a2db... (85 %)
Writing at 0x00040523... (100 %)
Wrote 220032 bytes (111428 compressed) at 0x00010000 in 1.6 seconds (effective 1121.8 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 103...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (103 compressed) at 0x00008000 in 0.0 seconds (effective 579.6 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
Executing action: monitor
Running idf_monitor in directory /home/esp/esp/myesp/testing/hello_world
Executing "/home/esp/.espressif/python_env/idf5.2_py3.10_env/bin/python /home/esp/esp/esp-idf/tools/idf_monitor.py -p /dev/ttyACM0 -b 115200 --toolchain-prefix xtensa-esp32s3-elf- --target esp32s3 --revision 0 /home/esp/esp/myesp/testing/hello_world/build/hello_world.elf --no-reset -m '/home/esp/.espressif/python_env/idf5.2_py3.10_env/bin/python' '/home/esp/esp/esp-idf/tools/idf.py' '-p' '/dev/ttyACM0'"...
#[0;32mI (110) esp_image: segment 1: paddr=0001cdfc vaddr=3fc91e#[0;32mI (293) main_task: Calling app_main()#[0m
Hello world!
This is esp32s3 chip with 2 CPU core(s), WiFi/BLE, silicon revision v0.2, 8MB external flash
Minimum free heap size: 386880 bytes
Restarting in 10 seconds...
Restarting in 9 seconds...
Restarting in 8 seconds...
Restarting in 7 seconds...
Restarting in 6 seconds...
Restarting in 5 seconds...

This is the flash log from the ulp/ulp_riscv/adc example.

Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3)
Crystal is 40MHz
MAC: 74:4d:bd:81:29:28
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00004fff...
Flash will be erased from 0x00010000 to 0x00049fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 18928 bytes to 11936...
Writing at 0x00000000... (100 %)
Wrote 18928 bytes (11936 compressed) at 0x00000000 in 0.3 seconds (effective 525.0 kbit/s)...
Hash of data verified.
Compressed 236992 bytes to 121125...
Writing at 0x00047308... (100 %)
Wrote 236992 bytes (121125 compressed) at 0x00010000 in 1.8 seconds (effective 1058.8 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 103...
Writing at 0x00008000... (100 %)Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/esptool/__main__.py", line 9, in <module>
    esptool._main()
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/esptool/__init__.py", line 1139, in _main
    main()
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/esptool/__init__.py", line 936, in main
    esp.hard_reset()
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/esptool/targets/esp32s3.py", line 347, in hard_reset
    HardReset(self._port, uses_usb_otg)()
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/esptool/reset.py", line 134, in __call__
    self._setRTS(False)
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/esptool/reset.py", line 40, in _setRTS
    self.port.setRTS(state)
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/serial/serialutil.py", line 600, in setRTS
    self.rts = value
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/serial/serialutil.py", line 463, in rts
    self._update_rts_state()
  File "/home/esp/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/serial/serialposix.py", line 708, in _update_rts_state
    fcntl.ioctl(self.fd, TIOCMBIC, TIOCM_RTS_str)
OSError: [Errno 19] No such device

Wrote 3072 bytes (103 compressed) at 0x00008000 in 0.0 seconds (effective 559.9 kbit/s)...
Hash of data verified.

Leaving...

Question:

Is anybody able to flash the ULP example?
What could I change?