Error Interceptor
The Error Interceptor feature allows you to customize backend error responses by intercepting specific HTTP status codes and returning user-defined content. This is useful for presenting consistent and user-friendly error messages to clients.
The Error Interceptor configuration method described here is deprecated since Goma Gateway v0.6.0 and will be removed in future releases. It is recommended to use the errorInteceptor middleware with error interception settings for new configurations.
Configuration Options
-
enabled(boolean): Enables or disables the error interceptor. Default: `false -
contentType(string): TheContent-Typeof the response. Common values include:application/jsontext/plaintext/htmlapplication/xml
-
errors([]ErrorMapping): A list of error rules defining how specific HTTP status codes should be handled.
Error Mapping Structure
Each entry in the errors array defines how to handle a specific HTTP status code:
statusCode(integer): The HTTP status code to intercept (e.g.,401,404,500).body(string): The custom response body. Can be a simple string or a raw JSON string.
Example: Route with Error Interceptor
version: 2
gateway:
routes:
- name: Example
path: /store/cart
rewrite: /cart
target: http://cart-service:8080
methods: []
healthCheck:
path: "/health/live"
interval: 10s
timeout: 5s
healthyStatuses: [200, 404]
errorInterceptor:
enabled: true
contentType: "application/json"
errors:
- statusCode: 401
body: "" # Empty response body for 401 Unauthorized
- statusCode: 404
body: >
{"success": false, "status": 404, "message": "Page not found", "data": []}
- statusCode: 500
body: "Internal server error"
cors: {}
middlewares: []
✅ Tip: Use
>or|in YAML to handle multi-line or JSON strings cleanly.