Troubleshooting
Solutions to common issues with HolyDocs builds, deployments, domains, integrations, and more.
Build Failures
Error: VALIDATION_ERROR: Configuration schema validation failed
Your docs.json has a syntax or schema error. Common causes:
- Missing required fields like
nameornavigation - Invalid color format (must be 6-digit hex like
#007AFF, not#07F) - Theme name not matching one of the 8 built-in themes
- JSON syntax errors (trailing commas, missing quotes)
Fix: Run holydocs check locally to see specific validation errors. The CLI provides line-by-line error messages.
Error: MDX_PARSE_ERROR: Failed to parse page.mdx
An MDX file has invalid syntax. Common causes:
- Unclosed JSX tags (e.g.,
<Callout>without</Callout>) - Invalid JSX attributes (e.g.,
cols={3missing closing brace) - Raw HTML with unescaped characters (use
<instead of<in text) - Curly braces in content (use
{'{'}to escape)
Fix: Check the deployment logs for the specific file and line number. Fix the syntax and push again.
Error: OPENAPI_ERROR: Failed to parse OpenAPI specification
Your OpenAPI spec is invalid or unreachable. Common causes:
- Spec URL returns a non-JSON/YAML response
- Invalid OpenAPI 3.x syntax
- Unresolvable
$refreferences - Network timeout fetching remote spec
Fix: Validate your spec at editor.swagger.io. For remote URLs, verify the URL is publicly accessible and returns valid JSON or YAML.
Error: TIMEOUT: Build exceeded maximum duration
Builds have a 60-second CPU time limit (Cloudflare Worker constraint). Large documentation sites or complex OpenAPI specs can hit this limit.
Fix:
- Reduce the size of inline content in MDX files
- Use remote URLs for OpenAPI specs instead of inline definitions
- Split very large specs into multiple smaller specs
- Contact support if you consistently hit timeouts
Deployment Issues
Deployments are processed one at a time per project. If a deployment is stuck in queued:
- Check if another deployment is currently building
- Wait for the current build to complete or fail
- If stuck for more than 5 minutes, cancel the deployment from the dashboard and retry
Note: Rapid pushes (multiple commits in quick succession) queue each deployment. Only the latest queued deployment matters — consider canceling intermediate ones.
Error: LIMIT_EXCEEDED: Daily build limit reached
Your plan's daily build limit has been reached. Limits reset at midnight UTC.
Fix: Upgrade your plan for higher limits, or wait for the reset. Use holydocs check locally to validate before pushing to avoid wasting builds on errors.
Error: AUTH_ERROR: Bad credentials or TOKEN_EXPIRED
Your GitHub or GitLab OAuth token has expired or been revoked.
Fix:
- Go to Settings > Git in the dashboard
- Click Reconnect GitHub (or GitLab)
- Re-authorize the HolyDocs app
- Trigger a manual deployment
Domain Issues
After adding a custom domain, verification can take 1-5 minutes (up to 48 hours in rare cases).
Checklist:
- Confirm the CNAME record points to
proxy.holydocs.com - Check for conflicting A records on the same hostname
- Verify DNS propagation with
dig docs.yourcompany.com CNAME - If using Cloudflare DNS, the orange proxy cloud is supported but not required
- Try removing and re-adding the domain in the dashboard
SSL certificates are auto-provisioned after DNS verification. If SSL is not working:
- Verify the domain shows as "verified" in the dashboard
- Wait 1-2 minutes after verification for certificate provisioning
- Clear your browser cache and try again
- If still broken after 10 minutes, remove and re-add the domain
Note: Apex domains require CNAME flattening support from your DNS provider.
Each custom domain can only be assigned to one HolyDocs project. If you see "already in use":
- Check all projects in your organization for the domain
- The domain may be assigned to a deleted project — contact support
- If transferring from another organization, the other org must release it first
Git Integration
Checklist:
- Verify the webhook exists: GitHub Repo > Settings > Webhooks (or GitLab equivalent)
- Check the webhook URL is
https://api.holydocs.com/api/v1/webhooks/github(or/gitlab) - Look at recent webhook deliveries in GitHub for error responses
- Ensure push events are enabled for the webhook
- For monorepos, verify changes are within the configured
repoPath
Verify the branch configuration in Settings > Git. The default branch should match your repository's primary branch (usually main or master). Pushes to other branches create preview deployments (Pro+ only).
Search Issues
Search indices are rebuilt on every production deployment. If results seem stale:
- Trigger a manual reindex: AI Features > Reindex Content in the dashboard
- Wait 30-60 seconds for indexing to complete
- Test search again
Content indexing uses differential checksums — only changed pages are re-embedded.
Keyword search weights titles highest, then headings, then body content. If a page is not appearing:
- Verify the page is listed in the navigation (unlisted pages are not indexed)
- Check that the page has a title and description in frontmatter
- For semantic search, try rephrasing the query — it understands intent, not just keywords
AI Assistant
- Verify the assistant is enabled: check
assistant.enabled: truein docs.json - Check your plan's AI message quota in the dashboard under AI Features > Usage
- If using a custom model override, verify the model name is valid
- Try clearing browser cache and reloading the page
The assistant answers based on your documentation content. If answers are wrong:
- Check if the relevant content exists in your docs
- Trigger a reindex to ensure the latest content is embedded
- Improve the content — better documentation produces better AI answers
- Add suggested questions to guide users toward common topics
CLI Issues
The CLI is not installed globally or not in your PATH.
Fix:
bashnpm install -g @holydocs/cli
Or use npx without installing:
bashnpx @holydocs/cli <command>
In CI environments there's no browser, so the device login flow won't work. Use the HOLYDOCS_API_KEY environment variable instead:
bashexport HOLYDOCS_API_KEY=hd_a1b2c3d4e5f67890a1b2c3d4e5f67890holydocs deploy --project proj_abc123
The CLI reads HOLYDOCS_API_KEY automatically — no holydocs login step required. Generate API keys from Settings → API Keys in the dashboard.
Getting Help
If your issue is not covered here: