Configures global exception handling middleware. Use when adding centralized error handling to .NET or Python backends.
ln-772-error-handler-setup
Type: L3 Worker
Category: 7XX Project Bootstrap
Configures global error handling for .NET and Python backend applications.
Overview
Aspect
Details
Input
Context Store from ln-770
Output
Exception handling middleware and custom exceptions
Stacks
.NET (ASP.NET Core Middleware), Python (FastAPI exception handlers)
Phase 1: Receive Context
Accept Context Store from coordinator.
Required Context:
STACK: .NET or Python
FRAMEWORK: ASP.NET Core or FastAPI
PROJECT_ROOT: Project directory path
ENVIRONMENT: Development or Production
Idempotency Check:
.NET: Grep for GlobalExceptionMiddleware or UseExceptionHandler
Python: Grep for @app.exception_handler or exception_handlers.py
If found: Return { "status": "skipped" }
Phase 2: Research Error Handling Patterns
Use MCP tools to get up-to-date documentation.
For .NET:
MCP ref: "ASP.NET Core global exception handling middleware"
Context7: /dotnet/aspnetcore
For Python:
MCP ref: "FastAPI exception handlers custom exceptions"
Context7: /tiangolo/fastapi
Key Patterns to Research:
Middleware pipeline positioning
Exception type mapping to HTTP status codes
ProblemDetails (RFC 7807) format
Development vs Production error details
Logging integration
Phase 3: Decision Points
Q1: Error Response Format
Option
Description
ProblemDetails (RFC 7807) (Recommended)
Standardized format, widely adopted
Custom Format
Project-specific requirements
Q2: Error Detail Level
Environment
Stack Trace
Inner Exceptions
Request Details
Development
✓ Show
✓ Show
✓ Show
Production
✗ Hide
✗ Hide
✗ Hide
Q3: Error Taxonomy
Define standard error codes:
Code
HTTP Status
Description
VALIDATION_ERROR
400
Invalid input data
UNAUTHORIZED
401
Authentication required
FORBIDDEN
403
Insufficient permissions
NOT_FOUND
404
Resource not found
CONFLICT
409
Resource state conflict
INTERNAL_ERROR
500
Unexpected server error
Phase 4: Generate Configuration
.NET Output Files
File
Purpose
Middleware/GlobalExceptionMiddleware.cs
Exception handling middleware
Exceptions/AppException.cs
Base exception class
Exceptions/ValidationException.cs
Validation errors
Exceptions/NotFoundException.cs
Not found errors
Models/ErrorResponse.cs
Error response model
Generation Process:
Use MCP ref to get current ASP.NET Core exception handling patterns
Generate GlobalExceptionMiddleware with:
Exception type to HTTP status mapping
Logging of exceptions
ProblemDetails response format
Environment-aware detail level
Generate custom exception classes
Registration Code:
app.UseMiddleware<GlobalExceptionMiddleware>();
Python Output Files
File
Purpose
exceptions/app_exceptions.py
Custom exception classes
exceptions/handlers.py
FastAPI exception handlers
models/error_response.py
Pydantic error models
Generation Process:
Use MCP ref to get current FastAPI exception handling patterns
Generate exception handlers with:
HTTPException handling
Custom AppException handling
Validation error handling
Request validation error handling
Generate custom exception classes
Registration Code:
app.add_exception_handler(AppException, app_exception_handler)
app.add_exception_handler(RequestValidationError, validation_exception_handler)
Phase 5: Validate
Validation Steps:
Syntax check:
.NET: dotnet build --no-restore
Python: python -m py_compile exceptions/handlers.py
Test error handling:
Create test endpoint that throws exception
Verify error response format
Check that stack trace hidden in Production
Expected Error Response (ProblemDetails):
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Validation Error",
"status": 400,
"detail": "Invalid input data",
"instance": "/api/users",
"errors": [
{ "field": "email", "message": "Invalid email format" }
],
"traceId": "abc-123-def-456"
}
Return to Coordinator
{
"status": "success",
"files_created": [
"Middleware/GlobalExceptionMiddleware.cs",
"Exceptions/AppException.cs",
"Models/ErrorResponse.cs"
],
"packages_added": [],
"registration_code": "app.UseMiddleware<GlobalExceptionMiddleware>();",
"message": "Configured global exception handling"
}
Reference Links
ASP.NET Core Error Handling
FastAPI Handling Errors
RFC 7807 Problem Details
Critical Rules
Use ProblemDetails (RFC 7807) by default — standardized error response format
Hide stack traces in Production — environment-aware detail level is mandatory
Use MCP ref for current patterns — do not hardcode middleware from memory
Idempotent — if GlobalExceptionMiddleware or exception_handlers.py exists, return status: "skipped"
Map all custom exceptions to HTTP status codes — no unhandled exception types reaching the client
Definition of Done
Context Store received (stack, framework, environment)
Error handling patterns researched via MCP tools
GlobalExceptionMiddleware generated (.NET) or exception handlers generated (Python)
Custom exception classes created (AppException, ValidationException, NotFoundException)
Error response model created (ProblemDetails format)
Syntax validated (dotnet build or py_compile)
Structured JSON response returned to ln-770 coordinator
Version: 2.0.0
Last Updated: 2026-01-10don't have the plugin yet? install it then click "run inline in claude" again.