504

Gateway Timeout

5xx Server Error The server is acting as a gateway and cannot get a response in time

Code Examples

Here are examples of how to test HTTP 504 responses in different programming languages:

Select options below to see how to use advanced features in your code:

Request:
curl https://free.mockerapi.com/504
Response Body:
{
  "success": false,
  "status": 504,
  "statusText": "Gateway Timeout - The server is acting as a gateway and cannot get a response in time",
  "timestamp": "2025-10-08T10:30:45.123Z",
  "request": {
    "method": "GET",
    "url": "/504",
    "fullUrl": "https://free.mockerapi.com/504"
  }
}
Request:
fetch('https://free.mockerapi.com/504')
  .then(response => {
    console.log('Status:', response.status); // 504
    return response.json();
  })
  .then(data => {
    console.log('Response:', data);
  })
  .catch(error => {
    console.error('Error:', error);
  });
Response Body:
{
  "success": false,
  "status": 504,
  "statusText": "Gateway Timeout - The server is acting as a gateway and cannot get a response in time",
  "timestamp": "2025-10-08T10:30:45.123Z",
  "request": {
    "method": "GET",
    "url": "/504",
    "fullUrl": "https://free.mockerapi.com/504"
  }
}
Request:
import requests

response = requests.get('https://free.mockerapi.com/504')

print(f'Status Code: {response.status_code}')  # 504
print(f'Response: {response.json()}')
Response Body:
{
  "success": false,
  "status": 504,
  "statusText": "Gateway Timeout - The server is acting as a gateway and cannot get a response in time",
  "timestamp": "2025-10-08T10:30:45.123Z",
  "request": {
    "method": "GET",
    "url": "/504",
    "fullUrl": "https://free.mockerapi.com/504"
  }
}
Request:
Response Body:
{
  "success": false,
  "status": 504,
  "statusText": "Gateway Timeout - The server is acting as a gateway and cannot get a response in time",
  "timestamp": "2025-10-08T10:30:45.123Z",
  "request": {
    "method": "GET",
    "url": "/504",
    "fullUrl": "https://free.mockerapi.com/504"
  }
}
Request:
require 'net/http'
require 'json'

uri = URI('https://free.mockerapi.com/504')
response = Net::HTTP.get_response(uri)

puts "Status Code: #{response.code}"  # 504
puts "Response: #{JSON.parse(response.body)}"
Response Body:
{
  "success": false,
  "status": 504,
  "statusText": "Gateway Timeout - The server is acting as a gateway and cannot get a response in time",
  "timestamp": "2025-10-08T10:30:45.123Z",
  "request": {
    "method": "GET",
    "url": "/504",
    "fullUrl": "https://free.mockerapi.com/504"
  }
}
Request:
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    resp, err := http.Get("https://free.mockerapi.com/504")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    fmt.Printf("Status Code: %d\n", resp.StatusCode)  // 504

    body, err := io.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    fmt.Printf("Response: %s\n", body)
}
Response Body:
{
  "success": false,
  "status": 504,
  "statusText": "Gateway Timeout - The server is acting as a gateway and cannot get a response in time",
  "timestamp": "2025-10-08T10:30:45.123Z",
  "request": {
    "method": "GET",
    "url": "/504",
    "fullUrl": "https://free.mockerapi.com/504"
  }
}
Request:
import java.net.http.*;
import java.net.URI;

public class HttpStatusTest {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://free.mockerapi.com/504"))
            .GET()
            .build();

        HttpResponse response = client.send(request,
            HttpResponse.BodyHandlers.ofString());

        System.out.println("Status Code: " + response.statusCode());  // 504
        System.out.println("Response: " + response.body());
    }
}
Response Body:
{
  "success": false,
  "status": 504,
  "statusText": "Gateway Timeout - The server is acting as a gateway and cannot get a response in time",
  "timestamp": "2025-10-08T10:30:45.123Z",
  "request": {
    "method": "GET",
    "url": "/504",
    "fullUrl": "https://free.mockerapi.com/504"
  }
}
Request:
const https = require('https');

https.get('https://free.mockerapi.com/504', (res) => {
  console.log('Status Code:', res.statusCode);  // 504

  let data = '';

  res.on('data', (chunk) => {
    data += chunk;
  });

  res.on('end', () => {
    console.log('Response:', JSON.parse(data));
  });
}).on('error', (err) => {
  console.error('Error:', err.message);
});
Response Body:
{
  "success": false,
  "status": 504,
  "statusText": "Gateway Timeout - The server is acting as a gateway and cannot get a response in time",
  "timestamp": "2025-10-08T10:30:45.123Z",
  "request": {
    "method": "GET",
    "url": "/504",
    "fullUrl": "https://free.mockerapi.com/504"
  }
}

What is HTTP 504 Gateway Timeout?

HTTP 504 Gateway Timeout is a generic server-side error response that indicates the server encountered an unexpected condition that prevented it from fulfilling the request. This is a catch-all error status code when the server cannot be more specific about the error condition or when no other error status code is suitable.

Unlike client-side 4xx errors, a 504 error indicates that the problem is on the server's end, not with the client's request. The server should include information about the error condition in the response body, though specifics are often limited for security reasons.

When Does This Happen?

A 504 Gateway Timeout response is returned when the server encounters an unexpected error that prevents it from processing the request. Common scenarios include:

  • Unhandled exceptions or runtime errors in server code
  • Database connection failures or query errors
  • Server misconfiguration issues
  • Resource exhaustion (memory, disk space)
  • Third-party service failures that the server depends on
  • Bugs in the application code

Try It Live

Click the button below to make a live request and see the 504 Gateway Timeout response

Common Use Cases

🔥 Error Handling Testing

Test how your application handles critical server errors and displays appropriate error messages to users.

🎯 Monitoring & Alerting

Verify that your monitoring systems correctly detect and alert on 504 errors in production.

🔄 Retry Logic Testing

Test exponential backoff and retry mechanisms when encountering server errors.

📊 Analytics Integration

Ensure server errors are properly tracked in analytics and error reporting tools.

🛡️ Graceful Degradation

Test fallback mechanisms and graceful degradation when primary services fail.

📝 Documentation Examples

Provide examples of error handling in API documentation with working endpoints.

Related Server Error Status Codes