08 — Troubleshooting & FAQ
Common issues and solutions. If your problem isn't here, email support@drklynx.com.
Deployment & Builds
Q: My Pages deploy failed with "ajv error" or schema validation error
A: Your build output is missing an index.html or the HTML is malformed. Check:
- Your build command produces an
index.htmlin the output directory (usuallybuild/,dist/, orpublic/) - Your
wrangler.tomlhas the correct build output directory:[env.production] build = { command = "npm run build", cwd = "." } outdir = "build" # or "dist", "public", etc. - If using Create React App, add this env var:
SKIP_PREFLIGHT_CHECK=true
If it still fails, email support with your GitHub repo or build log.
Q: My deploy succeeded but the site shows a blank page
A: Cloudflare caches the old version at the edge for up to 60 seconds. Try:
- Refresh your browser (Ctrl+F5 or Cmd+Shift+R for hard refresh)
- Wait 2 minutes
- Purge the cache manually (go to your domain on dash.cloudflare.com > Caching > Purge Cache > Everything)
Q: Getting "404: Not Found" on subpaths like /about or /users/123
A: You're using client-side routing (React Router, Vue Router, etc.) but the server isn't configured to fall back to index.html.
For Cloudflare Pages, enable "SPA mode":
- Go to your Pages project > Settings > Builds & deployments
- Enable "Automatically route all requests to
/index.html(for single-page applications)"
Or configure in wrangler.toml:
[[routes]]
pattern = "/*"
fallthrough = true
Q: Build is slow or timing out
A: Pages has a 15-minute build timeout. If you exceed it:
- Reduce dependencies (run
npm audit --production) - Enable Node.js caching: add
NODE_MODULES_CACHE: trueenv var - Optimize your build script (e.g., skip tests, use faster bundlers)
If still timing out, contact support.
Q: How do I see my build logs?
A: In the Cloudflare Dashboard > Pages > Your Project > Deployments. Click any deployment to see real-time logs.
DNS & Custom Domains
Q: My DNS isn't propagating after 24 hours
A: Check:
- Your CNAME record is exactly:
drklynx-m-abc123def456.pages.dev(no extra characters) - You saved the change at your registrar
- Verify with:
nslookup yourdomain.comordig yourdomain.com
If nslookup returns your old IP, your registrar's cache is stuck. Wait another 12–24 hours or contact your registrar.
Q: I'm seeing "Too many redirects" or "Redirection loop"
A: Your domain is pointing to the wrong Pages project. Check:
- Your CNAME points to:
drklynx-m-abc123def456.pages.dev - Your customer ID (
abc123def456) is correct - That Pages project name exists in your Cloudflare account
Q: SSL certificate isn't provisioning
A: Cloudflare needs to verify domain ownership. This happens once DNS resolves.
- Make sure your CNAME is exactly correct (use
nslookupto verify) - Wait 5–10 minutes for DNS to resolve globally
- Check Cloudflare Dashboard > your domain > SSL/TLS > Certificates for any error messages
If still stuck after 30 minutes, email support.
Q: How long does SSL take?
A: Usually 2–5 minutes after DNS propagates. Once your CNAME resolves, SSL auto-provisions. You'll see a checkmark in the Cloudflare Dashboard.
Database (D1)
Q: "Database not found" error
A: Check your wrangler.toml:
[[d1_databases]]
binding = "DB"
database_name = "drklynx-m-db-abc123def456"
database_id = "abc123def456"
Make sure database_name and database_id match your actual database.
Q: Query timeout or "Query exceeded 30 seconds"
A: Your query is too slow. Solutions:
- Add an index to frequently queried columns:
CREATE INDEX idx_users_email ON users(email); - Break into smaller queries
- Use
LIMITto fetch fewer rows
Q: I need to restore my database to a previous date
A: Cloudflare retains backups for 30 days. Email support@drklynx.com with:
- Your database ID
- The date/time you want restored to
- Brief reason
Restore usually takes 1–2 hours.
Q: What's my database connection string?
A: You don't use a traditional connection string. Instead:
- Query via Wrangler CLI:
wrangler d1 execute drklynx-m-db-abc123def456 --remote - From Pages functions: bind via
wrangler.toml - From external apps: use the D1 REST API (available in Pro+ tiers)
Q: Can I export my database?
A: Yes:
wrangler d1 backup download drklynx-m-db-abc123def456 > backup.sqlite3
This downloads a .sqlite3 file you can open locally with sqlite3 backup.sqlite3.
Storage (R2)
Q: "Access Denied" when uploading to R2
A: Your credentials are wrong or expired. Check:
- Access Key ID and Secret Key in your credentials email
- Make sure they're set as env vars:
process.env.R2_ACCESS_KEY,process.env.R2_SECRET_KEY - In
wrangler.toml, binding is correct:[[r2_buckets]] binding = "BUCKET" bucket_name = "drklynx-m-bucket-abc123def456"
Q: Uploads are very slow
A: R2 is global, so uploads should be fast from anywhere. If slow:
- Check your internet connection
- Try uploading a smaller test file first
- Use multipart upload for files >100 MB (automatic in AWS SDK)
Q: How do I make an object public?
A: When uploading, set ACL: "public-read":
await s3.send(
new PutObjectCommand({
Bucket: "drklynx-m-bucket-abc123def456",
Key: "public/image.jpg",
Body: fileContent,
ACL: "public-read",
})
);
Then access it at: https://abc123def456.r2.cloudflarestorage.com/public/image.jpg
Q: Can't log into webmail
A: Check:
- Username is your full email:
your-username@drklynx-mail.com - Password is correct (case-sensitive)
- Try clearing browser cookies
Q: SMTP auth fails when sending email
A: Ensure:
- Full email address:
your-username@drklynx-mail.com - Port 587 (TLS), not 465 or 25
- Credentials are correct
Q: Emails going to spam
A: Microhost Mail includes DKIM signing, but:
- Ask recipients to mark you as "Not Spam"
- Use a transactional email service (SendGrid, Postmark) for critical emails
- Contact support if you think DKIM is misconfigured
Q: I hit my sending limit
A: Wait until the next day, or upgrade to a higher tier. Contact support@drklynx.com to discuss bulk sending.
Billing & Account
Q: How do I upgrade from Starter to Pro?
A: Go to app.drklynx.com/microhost/<customer_id> (in development). For now:
- Email support@drklynx.com with your customer ID
- Request the upgrade
- You'll receive a new Stripe link
- Pay the difference, and your resources scale immediately
No downtime. Your site keeps running.
Q: Can I downgrade my tier?
A: Yes. Email support@drklynx.com. Your tier changes at the next billing cycle. Your site stays up.
If you downgrade and exceed the lower tier's quota, you'll get a warning. You can upgrade again immediately.
Q: I want to cancel. What happens to my data?
A: When you cancel:
- Your Pages project, D1, and R2 are frozen immediately
- Your email account is disabled
- Your data is retained for 30 days
- After 30 days, everything is deleted
If you want your data before deletion, export it:
- D1:
wrangler d1 backup download drklynx-m-db-abc123def456 > backup.sqlite3 - R2: Use the AWS SDK to download your files
Q: Do you offer refunds?
A: Yes. 14-day money-back guarantee. Email support@drklynx.com within 14 days of signup.
Q: How do I get an invoice for tax purposes?
A: Stripe automatically generates invoices. Log into Stripe (link in your signup email) and download invoices from your billing dashboard.
Ledger Pulse & Attestation
Q: Where do I find my attestation?
A: Go to ledger.drklynx.com and search your customer ID. Click the ast_MICROHOST_STARTER_PROVISION record.
Q: How do I verify my attestation signature?
A: Download the verification script:
curl -O https://ledger.drklynx.com/verify.py
python verify.py --customer-id abc123def456
Expected output:
✓ Signature valid
✓ Record untampered
Q: Can you delete my attestation?
A: No. The ledger is immutable. Your provision record is permanent and public.
General Support
Q: My issue isn't listed here
A: Email support@drklynx.com with:
- Your customer ID
- What you tried to do
- The exact error message (if any)
- Screenshot if helpful
We'll respond within 24 hours.
Q: Is there a status page?
A: Yes: status.drklynx.com. Check here for ongoing incidents or maintenance.
Q: What are your SLAs?
A: Coming soon. For now, we respond to support emails within 24 hours.
Getting help: Email support@drklynx.com or check status.drklynx.com.