Documentation
a project

error

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.

Syntax

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.

Examples

Trigger an error on certain request paths, and use handle_errors to write a response:

example.com {
	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
		file_server
    }

	file_server
}