Can't fetch tonies.json, toniesV2.json - failed updating tonies.json error=Handshake failed [530]

I installed teddycloud multiple ways with docker (on a dedicated raspberry pi, as incus container on truenas) and everything works fine, including fetching tonies from the orgininal cloud.

But I struggle with fetching the tonies.json from api.reccox.de

INFO |toniesJson.c:0100:tonies_update| Updating tonies.json from api.revvox.de...
INFO |cloud_request.c:0200:web_request| Connecting to HTTP server api.revvox.de:443...
INFO |cloud_request.c:0252:web_request|   trying IP: 157.90.183.226
WARN |tls_client_fsm.c:0215:tlsPerformClientHandshake| TLS handshake failure!
ERROR|cloud_request.c:0262:web_request| Failed to connect to HTTP server! HTTP=Unknown HTTP Status Code error=Handshake failed [530]
ERROR|toniesJson.c:0130:tonies_update| ... failed updating tonies.json error=Handshake failed [530]

Has someone any idea?

Hi,
I face the same issue. This prevents to reload tonies.custom.json with the “Reload tonies.json” function in the GUI. A few days ago this was working fine I would say…
My workaround to load the tonies.custom.json is to restart the server.
Or to use the other API call https://<IP>:8443/api/toniesJsonReload

Running teddycloud...
TeddyCloud v0.6.4 (f13703a) - 2025-03-05 08:01:37 +0000 ubuntu linux-x86_64(64)
INFO |toniesJson.c:0211:tonieboxes_update| Updating tonies.json from api.revvox.de...
INFO |cloud_request.c:0200:web_request| Connecting to HTTP server api.revvox.de:443...
INFO |cloud_request.c:0252:web_request|   trying IP: 157.90.183.226
DEBUG|cloud_request.c:0033:httpClientTlsInitCallbackBase| Initializing TLS...
DEBUG|cloud_request.c:0070:httpClientTlsInitCallbackBase| Initializing TLS done
WARN |tls_client_fsm.c:0215:tlsPerformClientHandshake| TLS handshake failure!
ERROR|cloud_request.c:0262:web_request| Failed to connect to HTTP server! HTTP=Unknown HTTP Status Code error=Handshake failed [530]
ERROR|toniesJson.c:0244:tonieboxes_update| ... failed updating tonieboxes.json error=Handshake failed [530]

When trying the URL with curl from the container I get the a successful 302 redirect response:

root@teddycloud:/# curl -vvv https://api.revvox.de/tonies.json?source=teddyCloud&version=00000000
* Host api.revvox.de:443 was resolved.
* IPv6: (none)
* IPv4: 157.90.183.226
*   Trying 157.90.183.226:443...
* Connected to api.revvox.de (157.90.183.226) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-ECDSA-AES256-GCM-SHA384 / X25519 / id-ecPublicKey
* ALPN: server accepted http/1.1
* Server certificate:
*  subject: CN=forum.revvox.de
*  start date: Aug 17 22:28:22 2025 GMT
*  expire date: Nov 15 22:28:21 2025 GMT
*  subjectAltName: host "api.revvox.de" matched cert's "api.revvox.de"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/1.x
> GET /tonies.json?source=teddyCloud HTTP/1.1
> Host: api.revvox.de
> User-Agent: curl/8.5.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Server: nginx
< Date: Thu, 21 Aug 2025 20:32:30 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Powered-By: PHP/8.4.11
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: *
< Expires: Tue, 03 Jul 2001 06:00:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, max-age=0
< Cache-Control: post-check=0, pre-check=0
< Pragma: no-cache
< Location: https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/release/tonies.json

Could it be connected to the renewed certificate by Let’s encrypt?

@g3gg0 fixed it now. Should work again.

Thank you @g3gg0 :hugs:

yeah, was a server issue. didnt have RSA cert anymore, causing handshake to fail.

1 Like

I can confirm on my side. Working!