ESP32 Box Flashing - Error 401 Unauthorized

Hi guys,

I have an ESP32 board, and when I click ESP32 on the teddycloud website, the “Continue to HTTPS” link shown in the YouTube video does not appear for me.Instead, I get this message:

Warning
The built-in ESP32 Box flashing functionality can only be used with browsers that support the Web Serial API. Unfortunately, the browser you are using does not support this feature. Please use a browser that supports the Web Serial API, such as Chrome or Edge.

On Proxmox I only have Dockerm Change Detection and AdGuard installed. In Portainer, I added the teddycloud container, and after that I connected to teddycloud. Proxmox was restarted. I also tried a different computer and tested it with multiple browsers. I’m using Google Chrome (updated on 26 Dec 2025). I also tried Mozilla Firefox and Microsoft Edge, but I keep getting the same error: “Error 401 – Unauthorized.” Since I don’t have the “Continue to HTTPS” button, I tried typing it directly into the URL.

Actual outcome:
Error 401 Unauthorized

Environment details /Setup:

  • OS: Proxmox 9.1
    • (Docker + AdGuard + Change Detection)
  • Docker version: Debian GNU/Linux 12 docker tty1
  • TeddyCloud version: TeddyCloud v0.6.5 (6682b48) - 2025-12-06 10:13:56 +0100 ubuntu linux-x86_64(64)
  • Portainer: created and started the teddycloud container
  • Afterwards I connected to the teddycloud web interfacen

Problem:

  • When opening the ESP32 flashing page, I repeatedly get “401 Unauthorized”
  • Also, I don’t see the “Continue to HTTPS” (“Weiter zu HTTPS”) button

Have you any idea?

Docker Logfile
TeddyCloud v0.6.5 (6682b48) - 2025-12-06 10:13:56 +0100 ubuntu linux-x86_64(64)

INFO |settings.c:0870:settings_load_ovl| Load settings from /teddycloud/config/config.ini
INFO |tls_adapter.c:0204:read_certificate| File ‘/teddycloud/certs/server/ca-root.pem’ assumed PEM style
INFO |tls_adapter.c:0201:read_certificate| File ‘/teddycloud/certs/server/ca-key.pem’ detected as DER style RSA PRIVATE KEY
INFO |tls_adapter.c:0204:read_certificate| File ‘/teddycloud/certs/server/teddy-cert.pem’ assumed PEM style
INFO |tls_adapter.c:0201:read_certificate| File ‘/teddycloud/certs/server/teddy-key.pem’ detected as DER style RSA PRIVATE KEY
ERROR|tls_adapter.c:0189:read_certificate| Failed to open ‘/teddycloud/certs/client/ca.der’ for cert type detection
ERROR|tls_adapter.c:0376:load_cert| Loading cert ‘/teddycloud/certs/client/ca.der’ failed
ERROR|tls_adapter.c:0189:read_certificate| Failed to open ‘/teddycloud/certs/client/client.der’ for cert type detection
ERROR|tls_adapter.c:0376:load_cert| Loading cert ‘/teddycloud/certs/client/client.der’ failed
ERROR|tls_adapter.c:0189:read_certificate| Failed to open ‘/teddycloud/certs/client/private.der’ for cert type detection
ERROR|tls_adapter.c:0376:load_cert| Loading cert ‘/teddycloud/certs/client/private.der’ failed
INFO |settings.c:0870:settings_load_ovl| Load settings from /teddycloud/config/config.overlay.ini
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
INFO |server.c:0964:server_init| 1 open HTTPS API connections
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web/tonieboxes/boxsetup/esp32/flashing
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
INFO |server.c:0964:server_init| 0 open HTTPS API connections
INFO |server.c:0964:server_init| 1 open HTTPS API connections
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web/tonieboxes/boxsetup/esp32/flashing
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
INFO |server.c:0964:server_init| 2 open HTTPS API connections
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web/tonieboxes/boxsetup/esp32/flashing
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
INFO |server.c:0964:server_init| 1 open HTTPS API connections
INFO |server.c:0964:server_init| 0 open HTTPS API connections
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
INFO |server.c:0964:server_init| 1 open HTTPS API connections
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on index.shtm
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
INFO |server.c:0964:server_init| 0 open HTTPS API connections
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web/tonieboxes/boxsetup/esp32/flashing
INFO |server.c:0964:server_init| 1 open HTTPS API connections
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web/tonieboxes/boxsetup/esp32/flashing
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web/tonieboxes/boxsetup/esp32/flashing
INFO |server.c:0964:server_init| 0 open HTTPS API connections
INFO |server.c:0964:server_init| 3 open HTTPS API connections
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web/tonieboxes/boxsetup/esp32/flashing
INFO |server.c:0964:server_init| 1 open HTTPS API connections
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
INFO |server.c:0964:server_init| 0 open HTTPS API connections
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
INFO |server.c:0964:server_init| 3 open HTTPS API connections
WARN |tls_server_fsm.c:0260:tlsPerformServerHandshake| TLS handshake failure!
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /web/tonieboxes/boxsetup/esp32/flashing
INFO |server.c:0964:server_init| 1 open HTTPS API connections
WARN |server_helpers.c:0831:httpServerUriUnauthorizedCallback| >> 401 on /favicon.ico
INFO |server.c:0964:server_init| 0 open HTTPS API connections
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)
INFO |handler_api.c:2493:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
INFO |handler_cloud.c:0041:handleCloudTime| >> respond with current time
INFO |mqtt.c:0691:mqtt_init_box| Skipping client ‘Toniebox’ (cn: ‘default’)

You need to use port 8443 for Web Ui https.

So ip:8443/web

1 Like