Skip to content

How to Configure HAProxy Custom Error Pages

DodaTech Updated 2026-06-24 1 min read

Custom error pages improve user experience and brand consistency during failures. HAProxy errorfile directives serve these pages directly. This guide walks through the specific troubleshooting steps to diagnose and resolve error page issues.

Before You Begin

Before you begin, be sure to have the following in place:

  • A Linux server with the relevant software installed
  • Access to the command line interface
  • Appropriate permissions (root or sudo)

Quick Fix

Wrong

Default HAProxy error pages (generic and unhelpful)

Wrong: Generic HAProxy error pages

errorfile 503 /etc/haproxy/errors/503.http\nerrorfile 504 /etc/haproxy/errors/504.http

Right: Custom branded error pages

Output

Custom error pages configured:\n  503 Service Unavailable: /etc/haproxy/errors/503.http\n  504 Gateway Timeout: /etc/haproxy/errors/504.http

Prevention

To avoid future issues, follow these best practices:

  • Create HTML error files in /etc/haproxy/errors/ with proper HTTP headers
  • Use errorfile directives in frontend or defaults section
  • Use errorloc for redirecting to an external error page
  • Keep error pages small (under 1KB) for fast loading
  • Error files must include HTTP status line

DodaTech Tools

For further assistance with any of the above issues, consider using DodaTech consulting services or DodaTech tutorials for more in-depth guidance.

Common Mistakes with errorfile

  1. Non-exhaustive pattern matches that compile with warnings then crash at runtime
  2. Misunderstanding that String is [Char] with poor performance for large text operations
  3. Using foldl instead of foldl' causing stack overflow on large lists

These mistakes appear frequently in real-world HAPROXY code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.

Practice Exercise

Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.

This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.

FAQ

What HTTP status codes can I customize with errorfile?|||200, 400, 401, 403, 404, 405, 407, 408, 410, 425, 429, 500, 502, 503, 504.
What is the difference between errorfile and errorloc? errorfile serves a local file directly. errorloc redirects the client to a URL with an HTTP redirect.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro