a project


Triggers an error in the HTTP handler chain, with an optional message and recommended HTTP status code.

This handler does not write a response. Instead, it's meant to be paired with the handle_errors directive to invoke your custom error handling logic.


error [<matcher>] <status>|<message> [<status>] {
    message <text>
  • <status> is the HTTP status code to write. Default is 500.
  • <message> is the error message. Default is no error message.
  • message is an alternate way to provide an error message; convenient if it is multiple lines.

To clarify, the first non-matcher argument can be either a 3-digit status code, or an error message string. If it is an error message, the next argument can be the status code.


Trigger an error on certain request paths, and use handle_errors to write a response: {
	root * /srv

	# Trigger errors for certain paths
    error /private* "Unauthorized" 403
	error /hidden* "Not found" 404

    # Handle the error by serving an HTML page 
    handle_errors {
        rewrite * /{http.error.status_code}.html