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_*

CodeHTTPDescriptionResolution
WEBIFY_PAGE_NOT_FOUND404Page not foundVerify the page UUID exists and belongs to your tenant
WEBIFY_PAGE_ALREADY_EXISTS409Page with this slug already existsChoose a different slug or update the existing page
WEBIFY_PAGE_QUOTA_EXCEEDED409Page quota exceeded for subscription tierUpgrade subscription tier or delete unused pages
WEBIFY_PAGE_INVALID_STATUS_TRANSITION400Invalid page status transitionCheck valid transitions: draft->published_staging->published_production
WEBIFY_PAGE_CANNOT_DELETE_PUBLISHED409Cannot delete a published pageUnpublish the page first via POST /pages/:id/unpublish
WEBIFY_PAGE_SLUG_ALREADY_EXISTS409Page slug already existsChoose a unique slug for your tenant

TemplateWEBIFY_TEMPLATE_*

CodeHTTPDescriptionResolution
WEBIFY_TEMPLATE_NOT_FOUND404Template not foundVerify the template UUID and that it is accessible to your tier
WEBIFY_TEMPLATE_PURCHASE_FAILED402Template purchase failedCheck wallet balance and payment method
WEBIFY_TEMPLATE_QUOTA_EXCEEDED409Template quota exceeded for subscription tierUpgrade tier or remove unused templates
WEBIFY_TEMPLATE_ALREADY_PURCHASED409Template already purchasedCheck your purchased templates via GET /templates/my-purchases
WEBIFY_TEMPLATE_NOT_IN_MARKETPLACE400Template not available in marketplaceTemplate may be unpublished or private
WEBIFY_TEMPLATE_TIER_REQUIRED403Template requires a higher subscription tierUpgrade to the required tier to access this template

ThemeWEBIFY_THEME_*

CodeHTTPDescriptionResolution
WEBIFY_THEME_NOT_FOUND404Theme not foundVerify the theme UUID exists
WEBIFY_THEME_QUOTA_EXCEEDED409Theme quota exceeded for subscription tierUpgrade subscription or delete unused themes
WEBIFY_THEME_INVALID_COLORS400Invalid theme color configurationEnsure colors are valid hex codes (e.g., #ff5500)
WEBIFY_THEME_IN_USE400Theme is currently in use and cannot be deletedReassign pages using this theme before deletion

SectionWEBIFY_SECTION_*

CodeHTTPDescriptionResolution
WEBIFY_SECTION_NOT_FOUND404Section not foundVerify the section UUID and page ID
WEBIFY_SECTION_QUOTA_EXCEEDED409Section quota exceeded for subscription tierUpgrade tier or remove unused sections
WEBIFY_SECTION_INVALID_TYPE400Invalid section typeCheck supported types: hero, features, testimonials, pricing, faq, cta, gallery
WEBIFY_SECTION_INVALID_CONTENT400Invalid section content formatVerify content matches the expected schema for the section type

A/B TestWEBIFY_ABTEST_*

CodeHTTPDescriptionResolution
WEBIFY_ABTEST_NOT_FOUND404A/B test not foundVerify the test UUID and page ID
WEBIFY_ABTEST_ALREADY_RUNNING409A/B test is already runningStop the current test before starting a new one
WEBIFY_ABTEST_QUOTA_EXCEEDED409A/B test quota exceededUpgrade tier for more concurrent A/B tests
WEBIFY_ABTEST_INVALID_TRAFFIC_SPLIT400Traffic split values do not sum to 1.0Ensure all variant traffic allocations sum to exactly 1.0
WEBIFY_ABTEST_INSUFFICIENT_VARIANTS400A/B test requires at least 2 variantsAdd at least one variant in addition to the control
WEBIFY_ABTEST_NOT_EDITABLE400A/B test cannot be edited in current statusOnly draft tests can be edited; stop the test first

DomainWEBIFY_DOMAIN_*

CodeHTTPDescriptionResolution
WEBIFY_DOMAIN_NOT_FOUND404Domain not foundVerify the domain UUID
WEBIFY_DOMAIN_ALREADY_EXISTS409Domain already registeredDomain is already claimed by another page or tenant
WEBIFY_DOMAIN_VERIFICATION_FAILED400Domain DNS verification failedAdd the required CNAME or TXT record to your DNS provider
WEBIFY_DOMAIN_QUOTA_EXCEEDED409Domain quota exceededUpgrade tier for more custom domains
WEBIFY_DOMAIN_INVALID_FORMAT400Invalid domain formatDomain must be a valid hostname (e.g., events.mycompany.com)

CommentWEBIFY_COMMENT_*

CodeHTTPDescriptionResolution
WEBIFY_COMMENT_NOT_FOUND404Comment not foundVerify the comment UUID
WEBIFY_COMMENT_CANNOT_EDIT_RESOLVED400Cannot edit a resolved commentCreate a new comment instead

AuthenticationWEBIFY_AUTH_*

CodeHTTPDescriptionResolution
WEBIFY_AUTH_UNAUTHORIZED401Missing or invalid JWT tokenProvide a valid Bearer token in the Authorization header
WEBIFY_AUTH_FORBIDDEN403Insufficient role permissionsVerify your user role matches the endpoint requirements
WEBIFY_AUTH_TOKEN_EXPIRED401JWT token has expiredRefresh your token via auth-svc
WEBIFY_AUTH_INVALID_TENANT403Invalid or missing tenant IDProvide a valid x-tenant-id header

Feature / QuotaWEBIFY_FEATURE/QUOTA

CodeHTTPDescriptionResolution
WEBIFY_FEATURE_NOT_AVAILABLE_FOR_TIER403Feature not available for current subscription tierUpgrade to the required tier (see endpoint docs for requirements)
WEBIFY_QUOTA_EXCEEDED409General quota exceededCheck your tier limits and current usage

AIWEBIFY_AI_*

CodeHTTPDescriptionResolution
WEBIFY_AI_CREDITS_INSUFFICIENT402Insufficient AI creditsTop up credits via wallet-svc or upgrade subscription
WEBIFY_AI_OPERATION_FAILED500AI operation failedRetry the request; if persistent, contact support

Rate Limit & ValidationWEBIFY_RATE/VALIDATION

CodeHTTPDescriptionResolution
WEBIFY_RATE_LIMIT_EXCEEDED429Too many requestsWait and retry with exponential backoff; AI endpoints allow 10 req/60s
WEBIFY_VALIDATION_FAILED422Request body validation failedCheck the validationErrors array for field-level details
WEBIFY_VALIDATION_INVALID_UUID400Invalid UUID format in path or bodyEnsure all IDs are valid UUID v4 format
WEBIFY_VALIDATION_INVALID_SLUG400Invalid slug formatSlugs must be lowercase alphanumeric with hyphens (e.g., my-page-slug)

SystemWEBIFY_SYSTEM_*

CodeHTTPDescriptionResolution
WEBIFY_INTERNAL_ERROR500Internal server errorRetry the request; include x-request-id when contacting support
WEBIFY_DATABASE_ERROR500Database connection or query errorTransient issue; retry with backoff
WEBIFY_KAFKA_ERROR500Kafka messaging errorEvents may be delayed; data is eventually consistent
WEBIFY_REDIS_ERROR500Redis cache errorService will fall back to database; no data loss