218
HTTPSUCCESSNotable2xx Success (Unofficial)MEDIUM confidence

This Is Fine

Production Risk

Medium — if your monitoring checks HTTP status codes, ProxyErrorOverride will mask upstream errors as 218 Success, hiding real failures.

What this means

218 This Is Fine is an unofficial status code used by Apache when the ProxyErrorOverride directive is enabled. Instead of forwarding the upstream error response code to the client, Apache replaces it with 218 and serves the error page from its own configuration, masking the real status code.

Why it happens
  1. 1Apache's ProxyErrorOverride directive is set to On, causing it to intercept 4xx/5xx responses from upstream servers.
  2. 2The upstream server returned an error, but Apache is substituting its own error page and a 218 status.
  3. 3A reverse proxy configuration intentionally hides upstream error codes.
How to reproduce

Apache acting as a reverse proxy with ProxyErrorOverride On when the upstream returns a 5xx error.

trigger — this will error
trigger — this will error
# Apache httpd.conf
ProxyErrorOverride On
ProxyPass / http://upstream-server/

expected output

HTTP/1.1 218 This Is Fine

Fix

Disable ProxyErrorOverride if you need accurate status codes

WHEN Monitoring or clients need to see the real upstream status code.

Disable ProxyErrorOverride if you need accurate status codes
# In httpd.conf or .htaccess
ProxyErrorOverride Off

Why this works

Disabling ProxyErrorOverride lets Apache pass the upstream status code through transparently.

What not to do

Do not rely on 218 in monitoring alerts

It masks real errors — your monitoring will miss upstream 500s if it only checks status codes.

Version notes
Apache 2.x

Specific to Apache httpd with ProxyErrorOverride; not part of any IETF standard.

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All HTTP errors