Nestjs error handling
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/nestjs-error-handling
🧠The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.
npx -y skills add ComeOnOliver/skillshub --skill nestjs-error-handlingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Global Exception Filters and standard error formats. Use when implementing global exception filters or standardizing error responses in NestJS. (triggers: **/*.filter.ts, main.ts, ExceptionFilter, Catch, HttpException)
SKILL.md
2.3 KB, as published. Nobody here has run it
NestJS Error Handling Standards
Priority: P1 (OPERATIONAL)
Global error handling and exception management patterns.
-
Requirement: Centralize error formatting.
-
Platform Agnostic: Do not import
Request/Responsefrom Express/Fastify types directly.- Use:
HttpAdapterHostto access the underlying platform response methods. const { httpAdapter } = this.httpAdapterHost;
- Use:
-
Structure:
- Implement strictly typed error responses.
- Refer to API Standards for
ApiErrorResponse.
{ "statusCode": 400, "message": "Validation failed", "error": "Bad Request", "timestamp": "ISO...", "path": "/users" }
Error Flow
- Service: Throws specific or generic errors (e.g.,
EntityNotFoundError). - Interceptor: Maps low-level errors to HTTP Exceptions (e.g.,
catchError(err => throw new NotFoundException())).- Why: Keeps Exception Filters focused on formatting, not business logic interpretation.
- Global Filter: Formats the final JSON response.
Built-in Exceptions
- Use: Throw
NotFoundException,ForbiddenException,BadRequestException. - Custom: Extend
HttpExceptiononly for domain-specific failures that need specific status codes.
Logging
- Context: Always pass
MyClass.nameto theLoggerconstructor. - Levels:
error: 500s (Stack trace required).warn: 400s (Client errors).
Security (Information Leakage)
- Production: NEVER expose stack traces in HTTP responses (
process.env.NODE_ENV === 'production'). - Sanitization: Ensure
ApiExceptionpayloads do not leak internal file paths or raw variable dumps.
Anti-Patterns
- No stack traces in production: Gate stack exposure behind
NODE_ENV === 'production'check. - No Express types in filters: Use
HttpAdapterHostfor platform-agnostic error handling. - No HttpException in services: Throw domain errors in services; let Interceptors map to HTTP exceptions.