502 Bad Gateway
HTTP response status code 502 Bad Gateway is a server error message that is returned to indicate that it is acting as a proxy or gateway, and it has received an invalid response from the upstream server.
Usage
When the 502 Bad Gateway status code is received, the server is first indicating that it is acting as a proxy or gateway for an upstream server. After the HTTP request had been forwarded to the server, an invalid HTTP response was received. The time to resolve this problem cannot be inferred or assumed.
In cases where the origin server returned an HTTP error status code, the same HTTP status code and related information is expected to be returned to the client to provide the most accurate description of the problem.
If the proxy does not receive any HTTP response from the upstream server whatsoever, then a 504 Gateway Timeout status code is more appropriate to be returned.
Note
A 502 Bad Gateway status code can affect the rate at which Googlebot and other crawlers visit the site. If a server is down for a lengthy period while returning a 502 Bad Gateway status code to clients then it can affect the search rankings of the URI and/or site. It is important that if a site is only down temporarily return the 503 Service Unavailable status code instead.
Example
In the example, the client requests a resource and the server responds with a 502 Bad Gateway status code because the server that it attempted to retrieve the resource from returned an invalid HTTP response.
Request
GET /news HTTP/1.1
Host: www.example.re
Response
HTTP/1.1 502 Bad Gateway
Content-Type: text/html; charset=UTF-8
Content-Length: 134
<html>
<head>
<title>Bad Gateway<\title>
</head>
<body>
<p>The server is unreachable at this time.</p>
</body>
</html>
Code references
.NET
HttpStatusCode.BadGateway
Rust
http::StatusCode::BAD_GATEWAY
Rails
:bad_gateway
Go
http.StatusBadGateway
Symfony
Response::HTTP_BAD_GATEWAY
Python3.5+
http.HTTPStatus.BAD_GATEWAY
Java
java.net.HttpURLConnection.HTTP_BAD_GATEWAY
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_BAD_GATEWAY
Angular
@angular/common/http/HttpStatusCode.BadGateway
Takeaway
The 502 Bad Gateway status code is a server error that indicates an upstream server is not functioning as expected.