# Template Tiger Error Reference > **Common fixes: 404 = check template name/account; 401 = verify X-API-Key header; 429 = wait 60 seconds.** ## Error Response Format All errors return JSON: ```json { "error": { "code": "ERROR_CODE", "message": "User-friendly error message", "details": { "templateName": "welcome-email" } } } ``` ## Error Codes ### 4xx Client Errors | Code | HTTP Status | Description | Fix | |------|-------------|-------------|-----| | TEMPLATE_NOT_FOUND | 404 | Template doesn't exist in account | Verify template name and account | | INVALID_REQUEST_BODY | 400 | Body is not valid JSON or not an object | Validate JSON format | | VARIABLE_VALIDATION_FAILED | 400 | Required variables missing | Provide all template variables | | RENDER_FAILED | 400 | Template syntax error | Check Handlebars syntax | | AUTHENTICATION_FAILED | 401 | Invalid or missing API key | Provide valid X-API-Key header | | RATE_LIMIT_EXCEEDED | 429 | Exceeded 60 requests/minute | Wait before retrying | ### 5xx Server Errors | Code | HTTP Status | Description | Fix | |------|-------------|-------------|-----| | INTERNAL_ERROR | 500 | Unexpected server error | Retry, contact support if persistent | | SERVICE_UNAVAILABLE | 503 | Temporary outage | Retry with exponential backoff | ## Common Issues and Solutions ### Template Not Found (404) - Verify template name is spelled correctly (case-sensitive) - Ensure template exists in your account - Check that API key belongs to correct account ### Invalid Request Body (400) - Ensure body is valid JSON - Body must be an object, not array or primitive - Check for JSON syntax errors (missing quotes, trailing commas) ### Variable Validation Failed (400) - Check which variables the template requires - Ensure all required variables are provided - Verify nested object paths match template expectations ### Authentication Failed (401) - Ensure X-API-Key header is present - Verify API key is not revoked - Check key is copied correctly (no extra spaces) ### Rate Limit Exceeded (429) - Wait for rate limit window to reset (60 seconds) - Monitor X-RateLimit-Remaining header - Implement exponential backoff in retry logic ## Rate Limit Headers All responses include: - `X-RateLimit-Limit: 60` - Requests allowed per minute - `X-RateLimit-Remaining: N` - Requests remaining in current window