server.errors

Page actions AI-ready formats and sharing
Open LLM text
Share with AI
Ask Claude Ask ChatGPT Ask Gemini Ask Copilot

Error handling pipeline for chirp requests.

Maps HTTPError exceptions and unexpected failures to appropriate Response objects, using registered error handlers or sensible defaults.

Error handling pipeline for chirp requests.

Maps HTTPError exceptions and unexpected failures to appropriate Response objects, using registered error handlers or sensible defaults.

server.errors

Name Type Default Description
type
qualified_name
element_type
description
source_file
line_number
is_autodoc
autodoc_element
_autodoc_template
_autodoc_url_path
_autodoc_page_type
title
doc_content_hash

Symbols on this page

_error_headers
function
def _error_headers(exc: HTTPError, request: Request) -> tuple[tuple[str, str], ...]

Return exception headers plus route-scoped QUERY discovery metadata.

Parameters

Name Type Default Description
exc HTTPError
request Request
default_fragment_error
function
def default_fragment_error(status: int, detail: str) -> str

Minimal HTML snippet for fragment error responses.

Parameters

Name Type Default Description
status int
detail str
_with_htmx_error_headers
function
def _with_htmx_error_headers(response: Response, request: Request) -> Response

Add htmx error-handling headers when the request is an htmx request.

Headers added:

  • HX-Retarget: #chirp-error— redirect error content to a dedicated container
  • HX-Reswap: innerHTML— replace (not append) the error content
  • HX-Trigger: chirpError— fire a client-side event for custom handling

Parameters

Name Type Default Description
response Response
request Request
call_error_handler
function async
async def call_error_handler(handler: Callable[..., Any], request: Request, exc: Exception, kida_env: Environment | None, oob_registry: OOBRegistry | None = None, fragment_target_registry: FragmentTargetRegistry | None = None) -> Response | StreamingResponse | SSEResponse

Invoke a user-registered error handler with introspected arguments.

Error handlers may accept zero, one (request), or two (request, exc) args. Supports both sync and async error handlers.

Parameters

Name Type Default Description
handler Callable[..., Any]
request Request
exc Exception
kida_env Environment | None
oob_registry OOBRegistry | None None
fragment_target_registry FragmentTargetRegistry | None None
handle_http_error
function async
async def handle_http_error(exc: HTTPError, request: Request, error_handlers: dict[int | type, Callable[..., Any]], kida_env: Environment | None, debug: bool, oob_registry: OOBRegistry | None = None, fragment_target_registry: FragmentTargetRegistry | None = None) -> Response | StreamingResponse | SSEResponse

Map an HTTPError to a Response using registered error handlers.

Parameters

Name Type Default Description
exc HTTPError
request Request
error_handlers dict[int | type, Callable[..., Any]]
kida_env Environment | None
debug bool
oob_registry OOBRegistry | None None
fragment_target_registry FragmentTargetRegistry | None None
handle_internal_error
function async
async def handle_internal_error(exc: Exception, request: Request, error_handlers: dict[int | type, Callable[..., Any]], kida_env: Environment | None, debug: bool, oob_registry: OOBRegistry | None = None, fragment_target_registry: FragmentTargetRegistry | None = None) -> Response | StreamingResponse | SSEResponse

Handle unexpected exceptions as 500 errors.

Parameters

Name Type Default Description
exc Exception
request Request
error_handlers dict[int | type, Callable[..., Any]]
kida_env Environment | None
debug bool
oob_registry OOBRegistry | None None
fragment_target_registry FragmentTargetRegistry | None None

View source · /home/runner/work/chirp/chirp/site/../src/chirp/server/errors.py:1