Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk11 min

How to Fix a 504 Gateway Timeout on a Self-Hosted Coolify App

A practical Coolify 504 troubleshooting guide: distinguish timeout from connectivity failures, verify proxy and container networks, test the internal port, repair shared-network isolation, and tune timeouts only for genuinely slow requests.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A 504 on a self-hosted Coolify application means the Coolify proxy waited for your application and did not receive a response within its configured timeout. The fastest fix is to identify whether the delay is caused by Docker-network isolation, a wrong route or port, an unhealthy application, or a genuinely slow request. An immediate 504 usually points to reachability or configuration; a response after roughly 60 seconds is a timeout symptom rather than a universal limit.

Work through the checks in order: classify the timing, confirm DNS and the public route, verify that coolify-proxy can reach the application network, compare proxy and application logs, test the service from inside its container, repair shared-network settings if necessary, and only then increase a proxy timeout for work that is intentionally slow.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What a 504 means in Coolify

Coolify’s documentation defines a gateway timeout this way: “Gateway timeout errors occur when the Coolify proxy cannot get a response from your application within the configured timeout period.” In the standard self-hosted path, Traefik—the default integrated reverse proxy—receives the request, selects the generated route for your domain, and forwards it through Docker networking to the application container.

A 504 therefore says that the proxy did not obtain a timely response. It does not by itself prove that the application is down. The distinction from a 502 is important:

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Status What it generally indicates First area to check
504 Gateway Timeout The proxy could not get a response before its timeout expired. Application delay, network isolation, wrong target, or timeout configuration.
502 Bad Gateway The proxy could not connect to the application at all. Container state, network reachability, route, or listening port.

Coolify identifies two primary 504 scenarios: a custom Docker network that isolates the application from the proxy, and timeout settings that are too short for large uploads, downloads, or genuinely slow responses. Treat the status code as a starting point, not as a diagnosis.

Use the timing to choose your first test

Before changing a setting, reproduce the error and note when the response arrives. Coolify’s documented triage heuristics are useful because they separate connection problems from waiting problems.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Observed behavior Most likely direction Next action
504 appears immediately Network or route configuration is probably wrong. Check DNS, firewall access, proxy state, generated route, target port, and shared Docker networks.
504 appears after about 60 seconds The proxy waited and then timed out. Read both log streams, test the app internally, and determine whether the request is slow by design or unreachable.
Failures are intermittent Network isolation, startup readiness, dependency failures, or resource saturation may be involved. Correlate repeated proxy and application logs and check health-check behavior.

The “about 60 seconds” observation is a diagnostic heuristic, not a published universal Coolify limit. Your effective timeout can differ with the proxy configuration and infrastructure.

Understand the request path before changing it

A normal request travels from the client to your DNS address, through the server’s firewall or security group, into the running Coolify proxy, through a generated domain-and-port route, and then over Docker networking to the application container. The application must be listening on the internal port configured for the resource.

A break at any stage can look like a gateway error. DNS may point to an old server, a firewall may block the expected traffic, the proxy may be stopped, the generated route may target the wrong port, or a Compose application may sit on a private resource network that coolify-proxy cannot join. Check the chain in that order so that a timeout setting does not hide a more basic fault.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Step-by-step diagnosis

1. Confirm the public endpoint and server

  1. Verify that the domain used in the browser or API client resolves to the server running this Coolify instance. If the record still points to a previous host, the request never reaches the expected proxy.
  2. Check the host firewall and any cloud security group. Allow the traffic needed for the public service and for the protocol you are using; a blocked path can prevent the proxy from receiving or completing the request.
  3. In Coolify, confirm that the resource’s domain is exactly the hostname you are testing and that its generated route targets the intended internal port.
  4. Confirm that the application process is actually listening on that configured internal port. A process bound to a different port will leave the proxy waiting for a service that is not there.

These checks establish ownership of the public path: DNS, firewall rules, route generation, and application listening ports are operator responsibilities in a self-hosted installation.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

2. Check whether the proxy and application share a reachable network

Coolify reports custom Docker-network isolation as a primary cause of 504 errors. Compose applications use resource-specific networks by default; they do not automatically join the shared coolify network. If the proxy cannot resolve or connect to the application across Docker networks, waiting eventually ends in a 504.

List the available networks:

docker network ls

Then display each running container and its attached networks:

docker ps --format "table {{.Names}}t{{.Networks}}"

Look for the application container and coolify-proxy. The exact resource network name varies, so compare the output rather than assuming a fixed name. A custom network used only by the application is a warning sign when the resource is meant to be reached through Coolify’s proxy.

3. Read the proxy and application logs together

A single log stream rarely explains a 504. Capture the recent proxy messages:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
docker logs coolify-proxy --tail 200

Then capture the application container’s recent output, substituting its actual name:

docker logs <your-container-name> --tail 200

Align the timestamps around one failed request. Proxy messages that show a timeout, unreachable upstream, or route error should be compared with application messages about startup, dependency connections, crashes, long-running work, or saturation. If the application logs show no request at all, investigate DNS, route, port, and Docker-network reachability before tuning timeouts. If the request arrives and remains busy, inspect the application’s own dependency and workload behavior.

4. Test the application from inside its container

Testing from the container removes the public DNS, firewall, and proxy layers. If a health check is enabled, use the application’s Terminal and issue the same kind of request against the internal port. For an application exposing a health endpoint on port 3000:

curl --fail http://localhost:3000/health

The request must use the internal port, not the public HTTPS port. The final image also needs an HTTP client such as curl or wget; a missing client makes the test fail even when the application is healthy.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Interpret the result carefully:

  • A successful response shows that the process can answer locally. Continue with network attachment, generated route, proxy state, and external path checks.
  • A connection refusal or failed request indicates an application, port, startup, or container problem. Fix that before changing the proxy timeout.
  • A command that hangs suggests the application itself is waiting on a dependency or an expensive operation. Use the application logs to identify what it is waiting for.

5. Verify the proxy container and generated route

Ensure coolify-proxy is running and that Coolify has generated a route for the domain you are testing. A route can be syntactically present yet still point to the wrong internal port or an unavailable container. Recheck the resource’s domain and port after every deployment or configuration change, and compare the route-related entries in the proxy log with the hostname used by the client.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

6. Repair network reachability in Coolify

When the application and proxy are on isolated networks, enable the predefined or shared network for the resource so the stack can be reached through Coolify. For a Compose-based application, this is a resource network setting rather than a change to the public DNS record.

  1. Open the affected resource in the Coolify dashboard and locate its network or Compose networking configuration.
  2. Enable the predefined/shared coolify network when the application is intended to be published by the Coolify proxy.
  3. Save the configuration and redeploy, or restart the resource, so the containers are recreated with the corrected network attachments.
  4. Run the container listing command again and confirm that both the application and coolify-proxy have a reachable network in common.
  5. Retry the domain and watch the proxy log while doing so.

Do not assume that merely adding a network declaration to a Compose file changes already-running containers. The deployment must recreate or restart the relevant connections before the proxy can use them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When increasing the timeout is the right fix

Only adjust a proxy timeout after you have demonstrated that the application is reachable and does eventually respond. A larger value is appropriate for a known slow workload, such as a large upload, a large download, or an endpoint that intentionally performs lengthy processing. It is not a repair for an isolated network, a wrong port, a stopped container, or a failed dependency.

Coolify does not publish one universal timeout value for every installation. The suitable value depends on the application and the surrounding infrastructure. Choose a limit that covers the documented workload with some margin, then verify the result in the proxy logs and by repeating the same request. Keep in mind that a longer wait ties up proxy and application resources for each stalled request; an endpoint that can take minutes may be better redesigned as an asynchronous job with a status endpoint.

For uploads and downloads, also check the application and any upstream service for their own request-size and processing limits. Raising only the proxy timeout will not fix an application-level limit or a connection that never reaches the container.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Health checks: readiness, not just process existence

Coolify’s documentation describes a health check as a signal that tells Docker and Coolify whether an application container is ready. A container can be running while its web server is still starting, while a database connection is unavailable, or while the process is accepting no useful requests. A readiness-focused check helps the platform avoid routing traffic to that state.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use a lightweight endpoint that returns quickly and exercises the minimum needed to serve traffic. Run it against the internal port from within the container, and ensure the image contains curl or wget. Avoid placing a long report, a full external crawl, or another slow operation in the health check: a check that times out can create restarts and make a transient startup issue look like a proxy failure.

After enabling or changing a check, redeploy and watch both container and proxy logs. Confirm that the check becomes successful before testing a production request. If the check fails locally, fix the application or its dependencies; if it succeeds locally but public requests still time out, return to the network and generated-route checks.

How to read common failure patterns

Pattern Likely explanation Correction
Immediate 504 and no application request in logs Proxy cannot reach the target, or the generated route/port is wrong. Compare networks, verify the internal port, confirm the proxy is running, and regenerate the route through a redeploy.
Application starts, then requests time out during startup The container is running before it is ready, or a dependency is unavailable. Add or correct a lightweight readiness health check and fix the startup dependency shown in application logs.
Local health request fails Wrong internal port, process failure, missing route inside the app, or missing HTTP client. Test the configured port, inspect application logs, and install or include curl or wget in the final image as appropriate.
Local request succeeds but public request waits and then fails Docker-network isolation, route targeting, firewall, or proxy configuration. Check shared-network membership, DNS, firewall access, generated route, and proxy logs.
Public request succeeds only after raising the timeout The workload is genuinely slower than the previous limit. Keep the workload-specific timeout, monitor resource use, and consider an asynchronous design for very long operations.
Intermittent 504s under load Readiness transitions, dependency instability, or application saturation. Correlate timestamps in both logs, keep checks lightweight, and address the application or dependency bottleneck rather than applying an unlimited timeout.

Should you replace Traefik?

Traefik is Coolify’s default integrated reverse proxy. Coolify also documents Caddy and a Custom (None) choice as alternatives. Switching proxies is an architectural decision, not a routine 504 fix: changing the proxy can affect every public route, TLS configuration, generated labels, health-check behavior, and timeout policy on the server.

Decision axis Traefik (Coolify default) Caddy alternative Custom (None)
Network reachability Uses the Coolify-managed proxy path and Docker-network connectivity. Requires you to provide and maintain the equivalent connectivity to each published service. You own the complete path from the external proxy or load balancer to every application.
Route generation Coolify generates the route used by the integrated proxy. Routes and their synchronization must be validated in the Caddy-based design. You must create and maintain routes outside the integrated proxy.
TLS handling Managed as part of the Coolify proxy integration. Handled by the Caddy deployment and its configuration. Handled by your external proxy or load balancer.
Timeout controls Set and verify them in the Traefik/Coolify path for the workload. Set and verify them in the Caddy path. Set and verify them wherever the external proxy is configured.
Health-check behavior Works with Coolify and Docker readiness signals when configured correctly. Must be aligned with the Caddy routing and container readiness model. Must be implemented and monitored by your chosen infrastructure.
Operational ownership Coolify’s integrated proxy is the least divergent from the documented default. You operate an alternative proxy integration. You operate the entire reverse-proxy layer.
Impact of changing choice Retaining it limits the change to the affected resource. Migration can interrupt or require revalidation of every public route. Migration can interrupt or require revalidation of every public route.

If one application returns a 504, fix its network, route, port, readiness, or workload first. Consider another proxy only when you have a broader operational reason and a plan to validate every public service, certificate, and timeout after the migration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prevent future 504s

  • Keep published applications on a network the Coolify proxy can reach; do not add custom isolation without an explicit routing plan.
  • Record each resource’s internal listening port and keep the Coolify route aligned with it after image or Compose changes.
  • Use a fast readiness endpoint and test it from inside the container with the same internal port that Coolify uses.
  • Include an HTTP client in the final image when container health checks depend on curl or wget.
  • Monitor coolify-proxy logs and application logs together so recurring timeout patterns are visible before users report them.
  • Set workload-specific timeouts for known large transfers or slow operations, and avoid treating a longer timeout as a substitute for fixing reachability.
  • After DNS, firewall, route, network, port, or proxy changes, perform a real request through the configured domain and verify the corresponding log entries.

A compact recovery checklist

  1. Reproduce the error and record whether it is immediate, delayed, or intermittent.
  2. Confirm DNS resolves to the correct server and that firewall or security-group rules allow the expected traffic.
  3. Verify that coolify-proxy is running and that the generated route uses the correct domain and internal port.
  4. Run docker network ls and docker ps --format "table {{.Names}}t{{.Networks}}"; confirm proxy/application network reachability.
  5. Read docker logs coolify-proxy --tail 200 and the matching application log output.
  6. From the application Terminal, test a lightweight endpoint such as curl --fail http://localhost:3000/health using the actual internal port.
  7. If networks are isolated, enable the predefined/shared coolify network and redeploy or restart.
  8. Only for a reachable application doing intentionally slow work, set a suitable workload-specific proxy timeout and verify it in logs.
  9. Retest through the public domain and continue monitoring for recurring failures.

The Bottom Line

Most self-hosted Coolify 504s are solved by restoring proxy-to-container reachability or correcting the route and internal port—not by blindly increasing the timeout. Use timing, Docker network output, paired logs, and an in-container health request to prove where the delay occurs; then apply a timeout change only when the application is healthy and legitimately slow.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.