Error Codes
Complete reference of 46 error codes across 12 categories returned by the Webify Service.
Error response formatjson
{
"error": {
"code": "WEBIFY_PAGE_NOT_FOUND",
"message": "Page with ID 'abc-123' not found",
"timestamp": "2026-02-24T10:00:00.000Z",
"resource": "page",
"id": "abc-123"
}
}PageWEBIFY_PAGE_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_PAGE_NOT_FOUND | 404 | Page not found | Verify the page UUID exists and belongs to your tenant |
WEBIFY_PAGE_ALREADY_EXISTS | 409 | Page with this slug already exists | Choose a different slug or update the existing page |
WEBIFY_PAGE_QUOTA_EXCEEDED | 409 | Page quota exceeded for subscription tier | Upgrade subscription tier or delete unused pages |
WEBIFY_PAGE_INVALID_STATUS_TRANSITION | 400 | Invalid page status transition | Check valid transitions: draft->published_staging->published_production |
WEBIFY_PAGE_CANNOT_DELETE_PUBLISHED | 409 | Cannot delete a published page | Unpublish the page first via POST /pages/:id/unpublish |
WEBIFY_PAGE_SLUG_ALREADY_EXISTS | 409 | Page slug already exists | Choose a unique slug for your tenant |
TemplateWEBIFY_TEMPLATE_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_TEMPLATE_NOT_FOUND | 404 | Template not found | Verify the template UUID and that it is accessible to your tier |
WEBIFY_TEMPLATE_PURCHASE_FAILED | 402 | Template purchase failed | Check wallet balance and payment method |
WEBIFY_TEMPLATE_QUOTA_EXCEEDED | 409 | Template quota exceeded for subscription tier | Upgrade tier or remove unused templates |
WEBIFY_TEMPLATE_ALREADY_PURCHASED | 409 | Template already purchased | Check your purchased templates via GET /templates/my-purchases |
WEBIFY_TEMPLATE_NOT_IN_MARKETPLACE | 400 | Template not available in marketplace | Template may be unpublished or private |
WEBIFY_TEMPLATE_TIER_REQUIRED | 403 | Template requires a higher subscription tier | Upgrade to the required tier to access this template |
ThemeWEBIFY_THEME_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_THEME_NOT_FOUND | 404 | Theme not found | Verify the theme UUID exists |
WEBIFY_THEME_QUOTA_EXCEEDED | 409 | Theme quota exceeded for subscription tier | Upgrade subscription or delete unused themes |
WEBIFY_THEME_INVALID_COLORS | 400 | Invalid theme color configuration | Ensure colors are valid hex codes (e.g., #ff5500) |
WEBIFY_THEME_IN_USE | 400 | Theme is currently in use and cannot be deleted | Reassign pages using this theme before deletion |
SectionWEBIFY_SECTION_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_SECTION_NOT_FOUND | 404 | Section not found | Verify the section UUID and page ID |
WEBIFY_SECTION_QUOTA_EXCEEDED | 409 | Section quota exceeded for subscription tier | Upgrade tier or remove unused sections |
WEBIFY_SECTION_INVALID_TYPE | 400 | Invalid section type | Check supported types: hero, features, testimonials, pricing, faq, cta, gallery |
WEBIFY_SECTION_INVALID_CONTENT | 400 | Invalid section content format | Verify content matches the expected schema for the section type |
A/B TestWEBIFY_ABTEST_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_ABTEST_NOT_FOUND | 404 | A/B test not found | Verify the test UUID and page ID |
WEBIFY_ABTEST_ALREADY_RUNNING | 409 | A/B test is already running | Stop the current test before starting a new one |
WEBIFY_ABTEST_QUOTA_EXCEEDED | 409 | A/B test quota exceeded | Upgrade tier for more concurrent A/B tests |
WEBIFY_ABTEST_INVALID_TRAFFIC_SPLIT | 400 | Traffic split values do not sum to 1.0 | Ensure all variant traffic allocations sum to exactly 1.0 |
WEBIFY_ABTEST_INSUFFICIENT_VARIANTS | 400 | A/B test requires at least 2 variants | Add at least one variant in addition to the control |
WEBIFY_ABTEST_NOT_EDITABLE | 400 | A/B test cannot be edited in current status | Only draft tests can be edited; stop the test first |
DomainWEBIFY_DOMAIN_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_DOMAIN_NOT_FOUND | 404 | Domain not found | Verify the domain UUID |
WEBIFY_DOMAIN_ALREADY_EXISTS | 409 | Domain already registered | Domain is already claimed by another page or tenant |
WEBIFY_DOMAIN_VERIFICATION_FAILED | 400 | Domain DNS verification failed | Add the required CNAME or TXT record to your DNS provider |
WEBIFY_DOMAIN_QUOTA_EXCEEDED | 409 | Domain quota exceeded | Upgrade tier for more custom domains |
WEBIFY_DOMAIN_INVALID_FORMAT | 400 | Invalid domain format | Domain must be a valid hostname (e.g., events.mycompany.com) |
CommentWEBIFY_COMMENT_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_COMMENT_NOT_FOUND | 404 | Comment not found | Verify the comment UUID |
WEBIFY_COMMENT_CANNOT_EDIT_RESOLVED | 400 | Cannot edit a resolved comment | Create a new comment instead |
AuthenticationWEBIFY_AUTH_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_AUTH_UNAUTHORIZED | 401 | Missing or invalid JWT token | Provide a valid Bearer token in the Authorization header |
WEBIFY_AUTH_FORBIDDEN | 403 | Insufficient role permissions | Verify your user role matches the endpoint requirements |
WEBIFY_AUTH_TOKEN_EXPIRED | 401 | JWT token has expired | Refresh your token via auth-svc |
WEBIFY_AUTH_INVALID_TENANT | 403 | Invalid or missing tenant ID | Provide a valid x-tenant-id header |
Feature / QuotaWEBIFY_FEATURE/QUOTA
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_FEATURE_NOT_AVAILABLE_FOR_TIER | 403 | Feature not available for current subscription tier | Upgrade to the required tier (see endpoint docs for requirements) |
WEBIFY_QUOTA_EXCEEDED | 409 | General quota exceeded | Check your tier limits and current usage |
AIWEBIFY_AI_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_AI_CREDITS_INSUFFICIENT | 402 | Insufficient AI credits | Top up credits via wallet-svc or upgrade subscription |
WEBIFY_AI_OPERATION_FAILED | 500 | AI operation failed | Retry the request; if persistent, contact support |
Rate Limit & ValidationWEBIFY_RATE/VALIDATION
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_RATE_LIMIT_EXCEEDED | 429 | Too many requests | Wait and retry with exponential backoff; AI endpoints allow 10 req/60s |
WEBIFY_VALIDATION_FAILED | 422 | Request body validation failed | Check the validationErrors array for field-level details |
WEBIFY_VALIDATION_INVALID_UUID | 400 | Invalid UUID format in path or body | Ensure all IDs are valid UUID v4 format |
WEBIFY_VALIDATION_INVALID_SLUG | 400 | Invalid slug format | Slugs must be lowercase alphanumeric with hyphens (e.g., my-page-slug) |
SystemWEBIFY_SYSTEM_*
| Code | HTTP | Description | Resolution |
|---|---|---|---|
WEBIFY_INTERNAL_ERROR | 500 | Internal server error | Retry the request; include x-request-id when contacting support |
WEBIFY_DATABASE_ERROR | 500 | Database connection or query error | Transient issue; retry with backoff |
WEBIFY_KAFKA_ERROR | 500 | Kafka messaging error | Events may be delayed; data is eventually consistent |
WEBIFY_REDIS_ERROR | 500 | Redis cache error | Service will fall back to database; no data loss |