A 504 Gateway Timeout Error is an HTTP response status code indicating that a server currently acting as a gateway or proxy did not receive a timely response from another server further upstream. As with most HTTP response codes, it can be challenging to determine the exact cause of a 504 Gateway Timeout Error.
Throughout this article, we'll examine the 504 Gateway Timeout Error and look at a few troubleshooting tips and potential fixes.
All HTTP response status codes in the 5xx category are server error responses. Similar to the 502 Bad Gateway Error, a 504 Gateway Timeout Error means that something has gone wrong with a gateway or proxy server further upstream.
In general networking parlance, an upstream server is a server that provides a service to (i.e. is accessed by) another server. Thus, a server upstream is located higher in the overall server hierarchy than a downstream server. The terms "upstream" and "downstream" refer to the relative distance of a server from your device. The further the server is from your device, the more "upstream" it is.
Many web applications behind the scenes power smartphone apps with a modern-looking user interface. If a 504 Gateway Timeout Error occurs, the issue isn't related to the app installed on your phone or local testing device. Instead, it will be something on the server-side.
The problem may not be with the specific web server your application is running on. Instead, it's possible that every aspect of your particular application (along with its servers) are working flawlessly. However, a 504 Gateway Timeout Error could still occur if an upstream server is experiencing problems.
As with anything, it's better to be safe than sorry. As such, it is critical that you perform a full backup of your application and database before attempting any fixes. If you have the capability, create a complete copy of the application onto a secondary staging server that isn't "live.” This will create a safe environment to test possible solutions to the problem, without jeopardizing your live application.
As mentioned before, a 504 Error means that a server upstream did not receive a "timely" response from another server further along upstream. The server providing the 504 Gateway Timeout Error is acting as a gateway.
Let's take a moment to discuss what a gateway (or proxy) is. In most HTTP communications, a client will connect to a server via a third-party gateway computer. The gateway acts as, well, a gateway by which messages from the client are securely sent to the server, and vice-versa. A gateway acts as a node within the larger network web, connecting and routing communications between multiple clients, servers, and other nodes within the (virtual) vicinity.
Believe it or not, most homes with Internet access have an active gateway. Your local home network, which is likely set up through a router (or router+modem hybrid), typically assigns IP addresses to all the devices on your network using the base address of 192.168.1.*, where the asterisk changes depending on the device. In most cases, communication from one such local network address to another local network address is allowed.
Problems arise when your computer attempts to connect to an IP address outside of this base range. Your router's gateway will intercept it and perform the communication between your computer and the remote server on your behalf.
In some situations, the web server running your application may cause the problem. This is particularly true when your server is running either a combination frontend+backend server setup (such as Nginx and Apache), or the web server relies on third-party services, which are typically located elsewhere on additional upstream servers. Any of the upstream servers your client (web browser) is connecting through may be down or experiencing issues at this time, causing delays in processing and a 504 Status Code.
Here are some additional tips to help you troubleshoot your server to find the cause of a 504 Error:
If you see a 504 Gateway Timeout Error, it means you probably need an error management tool. Such tools automatically detect these and other errors in the future. They can even alert you and your team immediately when an error occurs.
Airbrake's error monitoring software provides real-time error monitoring and automatic exception reporting for all your development projects. Airbrake's web dashboard provides you with 24/7 updates on your application's health and error rates. No matter what you're working on, Airbrake easily integrates with all the most popular languages and frameworks. Plus, Airbrake features such as customizable exception parameters and error filterings allow you to gather the errors that matter most.
Check out Airbrake's error monitoring software today and create a free dev account! See for yourself why so many of the world's best engineering teams use Airbrake to revolutionize their exception handling practices!
Note: We published this post in October 2017 and recently updated it in July 2022.