Overview
At Formbricks, we follow consistent error handling patterns to ensure reliability, debuggability, and maintainability across our codebase. This document outlines our standard approaches to error handling.Core Principles
- Type Safety: Use typed errors and results
- Meaningful Messages: Provide clear, actionable error messages
- Proper Propagation: Handle or propagate errors appropriately
- Logging: Ensure errors are properly logged for debugging
- Recovery: Implement graceful fallbacks where possible
Standard Error Types
We maintain a set of standardized error types for different scenarios:Error Handling Patterns
API Error Handling
For API endpoints:Client-Side Error Handling
For client-side operations:Best Practices
-
Never Swallow Errors
- Always handle or propagate errors
- Log errors appropriately for debugging
- Use error boundaries in React components
-
Type Safety
- Use typed error responses
- Leverage TypeScript for compile-time error checking
- Define clear error interfaces
-
Error Messages
- Include relevant context in error messages
- Make messages actionable for developers
- Use consistent error formatting
-
Error Recovery
- Implement fallback behaviors where appropriate
- Gracefully degrade functionality when possible
- Provide user feedback for recoverable errors
-
Documentation
- Document expected errors in function JSDoc
- Include error handling in code examples
- Keep error handling documentation up to date