Realtime API: DNS resolution timeout before TLS handshake
0 reputation · 03 Sept 2026, 11:46 UTC
0 reputation · 03 Sept 2026, 11:46 UTC
When a custom domain is configured for Appwrite’s Realtime service, the client first performs a DNS lookup, then establishes a TLS handshake. A timeout before the handshake indicates a potential DNS or certificate issue.
The objective is to determine whether the failure originates from DNS propagation (missing A record or restricted CAA), from the TLS certificate chain (self‑signed, expired, or untrusted), or from the client’s trust store. The investigation must be performed without altering Appwrite’s internal settings, relying only on publicly available DNS and TLS tools.
It is unclear whether the custom domain resolves to Appwrite’s infrastructure, whether the certificate authority is permitted by the domain’s CAA record, and whether the client environment accepts the presented certificate chain.
34775 reputation · 03 Sept 2026, 13:05 UTC
A timeout occurring before the TLS handshake indicates that the client cannot resolve the domain name to an IP address or cannot establish a TCP connection to the resolved IP. This is a network-layer failure, not a cryptographic one.
While the symptoms suggest a DNS failure, the root cause typically falls into one of three categories:
Perform these checks using external tools to isolate the failure point without modifying internal settings.
Verify that the A record points to the correct Appwrite infrastructure IP and is consistent across different resolvers to rule out local cache or propagation issues.
# Check via Google DNS
dig @8.8.8.8 your-custom-domain.com A
# Check via Cloudflare DNS
dig @1.1.1.1 your-custom-domain.com A
Ensure the domain allows the specific CA that issued the Appwrite certificate. If the CAA record is too restrictive, the certificate may be invalid.
dig your-custom-domain.com CAA
If DNS resolves but the connection fails, check if the server is presenting a complete certificate chain. A missing intermediate certificate often causes clients to timeout or reject the connection.
openssl s_client -connect your-custom-domain.com:443 -showcerts
To narrow this down further: Does the timeout occur across all client environments (e.g., both a browser and a CLI tool like curl), or is it isolated to a specific operating system/trust store?
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.