Back to skills
SKILL.md
Nestjs Error Handling
ASecurityImplement Global Exception Filters and standard error formats in NestJS. Use when implementing global exception filters or standardizing error responses in NestJS.
- 549 stars
- 0 votes
- 0 copies
- 4 views
- Added June 6, 2026
Works with
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add HoangNguyen0403/agent-skills-standard --skill nestjs-error-handling --agent claude-codeAre you the author of Nestjs Error Handling?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-nestjs-error-handling)---
name: nestjs-error-handling
description: Implement Global Exception Filters and standard error formats in NestJS. Use when implementing global exception filters or standardizing error responses in NestJS.
metadata:
triggers:
files:
- '**/*.filter.ts'
- 'main.ts'
keywords:
- ExceptionFilter
- Catch
- HttpException
---
# NestJS Error Handling Standards
## **Priority: P1 (OPERATIONAL)**
- **Requirement**: Centralize error formatting.
- **Platform Agnostic**: **not** import `Request`/`Response` from Express/Fastify types directly.
- **Use**: `HttpAdapterHost` to access underlying platform response methods.
- `const { httpAdapter } = this.httpAdapterHost;`
- **Structure**:
- Implement strictly typed error responses.
- Refer to **[API Standards](../nestjs-api-standards/SKILL.md)** for `ApiErrorResponse`.
```json
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"timestamp": "ISO...",
"path": "/users"
}
```
## Error Flow
1. **Service**: Throws specific or generic errors (e.g., `EntityNotFoundError`).
2. **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.
3. **Global Filter**: Formats final JSON response.
## Built-in Exceptions
- **Use**: Throw `NotFoundException`, `ForbiddenException`, `BadRequestException`.
- **Custom**: Extend `HttpException` only for domain-specific failures that need specific status codes.
## Logging
- **Context**: Always pass `MyClass.name` to `Logger` constructor.
- **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 `ApiException` payloads 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 `HttpAdapterHost` for platform-agnostic error handling.
- **No HttpException in services**: Throw domain errors in services; let Interceptors map to HTTP exceptions.Files in this skill
- SKILL.md
- evals/evals.json
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.