ln-772-error-handler-setup

Configures global exception handling middleware

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ln-772-error-handler-setup" with this command: npx skills add levnikolaevich/claude-code-skills/levnikolaevich-claude-code-skills-ln-772-error-handler-setup

ln-772-error-handler-setup

Type: L3 Worker Category: 7XX Project Bootstrap Parent: ln-770-crosscutting-setup

Configures global error handling for .NET and Python backend applications.


Overview

AspectDetails
InputContext Store from ln-770
OutputException 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:

  1. Middleware pipeline positioning
  2. Exception type mapping to HTTP status codes
  3. ProblemDetails (RFC 7807) format
  4. Development vs Production error details
  5. Logging integration

Phase 3: Decision Points

Q1: Error Response Format

OptionDescription
ProblemDetails (RFC 7807) (Recommended)Standardized format, widely adopted
Custom FormatProject-specific requirements

Q2: Error Detail Level

EnvironmentStack TraceInner ExceptionsRequest Details
Development✓ Show✓ Show✓ Show
Production✗ Hide✗ Hide✗ Hide

Q3: Error Taxonomy

Define standard error codes:

CodeHTTP StatusDescription
VALIDATION_ERROR400Invalid input data
UNAUTHORIZED401Authentication required
FORBIDDEN403Insufficient permissions
NOT_FOUND404Resource not found
CONFLICT409Resource state conflict
INTERNAL_ERROR500Unexpected server error

Phase 4: Generate Configuration

.NET Output Files

FilePurpose
Middleware/GlobalExceptionMiddleware.csException handling middleware
Exceptions/AppException.csBase exception class
Exceptions/ValidationException.csValidation errors
Exceptions/NotFoundException.csNot found errors
Models/ErrorResponse.csError response model

Generation Process:

  1. Use MCP ref to get current ASP.NET Core exception handling patterns
  2. Generate GlobalExceptionMiddleware with:
    • Exception type to HTTP status mapping
    • Logging of exceptions
    • ProblemDetails response format
    • Environment-aware detail level
  3. Generate custom exception classes

Registration Code:

app.UseMiddleware<GlobalExceptionMiddleware>();

Python Output Files

FilePurpose
exceptions/app_exceptions.pyCustom exception classes
exceptions/handlers.pyFastAPI exception handlers
models/error_response.pyPydantic error models

Generation Process:

  1. Use MCP ref to get current FastAPI exception handling patterns
  2. Generate exception handlers with:
    • HTTPException handling
    • Custom AppException handling
    • Validation error handling
    • Request validation error handling
  3. 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:

  1. Syntax check:

    • .NET: dotnet build --no-restore
    • Python: python -m py_compile exceptions/handlers.py
  2. 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


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-10

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

ln-782-test-runner

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ln-140-test-docs-creator

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ln-150-presentation-creator

No summary provided by upstream source.

Repository SourceNeeds Review