Skip to content
Back

408 Timeout / Curl Error 7 in Executor when accessing deployed site (Self-Hosted)

  • 0
  • 2
  • Self Hosted
  • Sites
  • Functions
Lars
21 Apr, 2026, 19:03

Hey everyone, I am losing my mind over a routing loop/timeout issue on a fresh self-hosted setup. I have a single Linux VPS (IP: 45.141.37.105) and one domain (vietsoul.de).

The main Appwrite console works perfectly at appwrite.vietsoul.de. However, when I try to access my deployed site at vietsoul.de, the browser hangs and eventually throws a 408 Synchronous function execution timed out.

My Setup:

  • Appwrite 1.9.0 (Self-Hosted via docker-compose)
  • Cloudflare DNS: A Records for appwrite, sites, functions, www, and @ are all pointing to the VPS IP. Proxy status is set to DNS Only so Appwrite handles Let's Encrypt SSL.
  • .env targets: _APP_DOMAIN="appwrite.vietsoul.de", _APP_DOMAIN_SITES="sites.vietsoul.de"

The Logs:

TypeScript
[Error] Type: Exception
[Error] Message: Internal curl error has occurred within the executor! Error Number: 7
[Error] File: /usr/local/src/Executor/Runner/Docker.php
[Error] Line: 1161

What I have already tried (that did not fix it):

  1. Server Resources: Verified my VPS has plenty of RAM (5.5GB free, no swapping).
  2. Cleaned up Runtimes: Reduced _APP_FUNCTIONS_RUNTIMES down to just node-20.0,node-21.0,node-22,php-8.0,php-8.3,static-1,flutter-3.29 to prevent network daemon overload.
  3. IPv6: Emptied _APP_DOMAIN_TARGET_AAAA= to prevent IPv6 routing blackholes.
  4. Internal DNS / Hairpin NAT routing: I tried adding extra_hosts to the executor for host-gateway. When that failed, I added network aliases to the traefik container for both the appwrite and runtimes networks to force internal DNS resolution.

It seems like the temporary build container on the runtimes network is failing to reach appwrite.vietsoul.de to download the deployment tarball, resulting in the connection refused (Error 7) and the subsequent 408 timeout.

Does anyone know the exact docker-compose routing fix to allow the build containers to resolve the main Appwrite domain on a single-node setup?

TL;DR
408 Timeout error was caused by a networking issue on the Docker side due to a weird DNS problem from the hoster. Solution: Add `dns_search: [.]` to the compose file to ignore the search domain issue. Gemni CLI was useful for diagnosing the VPS directly.
Lars
21 Apr, 2026, 19:05

I tried debugging it with google gemini, but that thing just seemed to send me into even more destruction...

I never worked with docker tbh and this is my first self hosted Appwrite so i just counted on AI helping me fix 1-2 errors, but i legit got nowhere

22 Apr, 2026, 00:11

seems like ur really close to figurng out the problem, very narrow to some networking issue on docker side

did u try checking traeffic? maybe its getting blocked there somehow

22 Apr, 2026, 19:47

Thanks for the help! I finally fixed it! turns out it was a weird DNS issue from the hoster. The server had a search domain that caused Docker to resolve all internal services (like MariaDB and Redis) to 127.0.0.1, which broke the whole network. I just had to add dns_search: [.] to my compose file to ignore it, and now it works like a charm! Gemini CLI really helped me dig into the VPS directly to find it.

1
23 Apr, 2026, 00:17

power of agi haha 🔥

1
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more