Skip to content

[SSL] add troubleshooting for conflicting _acme-challenge records in direct Cloudflare zone - #33304

Merged
ngayerie merged 6 commits into
productionfrom
ssl-saas-dcv-conflicting-txt-records
Sep 8, 2026
Merged

[SSL] add troubleshooting for conflicting _acme-challenge records in direct Cloudflare zone#33304
ngayerie merged 6 commits into
productionfrom
ssl-saas-dcv-conflicting-txt-records

Conversation

@ngayerie

@ngayerie ngayerie commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Adds documentation for Issue 2 from the certificate DCV support analysis (DEE-3645).

What: Expands the existing dcv-conflicting-records partial and adds a new "Conflicting _acme-challenge TXT records" section to the SaaS certificate validation troubleshooting page.

Why: When a customer's domain is simultaneously present in a direct Cloudflare zone and onboarded as a custom hostname via a SaaS provider (Cloudflare for SaaS), a hardcoded _acme-challenge TXT record in the direct zone overrides the DCV delegation CNAME. This causes certificate validation to remain stuck at pending_validation with no actionable error message. The issue is invisible to both the SaaS operator and the end customer — the docs previously did not document this scenario or how to resolve it.

@cloudflare-docs-bot

cloudflare-docs-bot Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Review

✅ No issues found in commit c7e0d86.

Code Review

This code review is in beta and may not always be helpful — use your judgment.

No code review issues found.

Conventions

No convention issues found.

Style Guide Review

No style-guide issues found.

Commands

Only codeowners can run commands. Post a comment with the command to trigger it.

Command Description
/review Runs a review now. Incremental if a prior review exists, full if not.
/full-review Re-reviews the entire PR diff from scratch, ignoring incremental history. Useful after a rebase, when you want a fresh review, or if the bot gets out of sync and reports issues that no longer exist.
/ignore-review-limit Permanently lifts the 2-review automatic limit for this PR. Future pushes will trigger reviews as normal.
/disable-auto-review Stops automatic reviews from triggering on future pushes to this PR. Codeowners can still run /review or /full-review manually.
/rebase Rebases the PR branch against production. On conflict, attempts to resolve automatically using AI. Stops with an explanation if confidence is not high enough.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

This pull request requires reviews from CODEOWNERS as it changes files that match the following patterns:

Pattern Owners
/src/content/docs/cloudflare-for-platforms/cloudflare-for-saas/ @baubuchon-cf, @dinasaur404, @irvinebroque, @cloudflare/appsec-reviewers, @cloudflare/product-owners
/src/content/partials/ssl/ @baubuchon-cf, @lgarofalo, @cloudflare/appsec-reviewers, @cloudflare/product-owners

ngayerie commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

[AI] Triage of bot findings — fixing all 3 (no skips):

ID Finding Decision
CR-0ea84f6b835a dig TXT +short can't show a CNAME record — prose claiming the output will show a CNAME target is wrong ✅ Fix: replace with two-step CNAME-then-TXT diagnostic in both files
SG-c458b9465494 / CR-2b77799e5b20 $ dig prefix in troubleshooting.mdx copied verbatim by the copy button ✅ Fix: drop $ prefix
SG-275fe124920e / CR-712d439b1dab $ dig prefix in dcv-conflicting-records.mdx copied verbatim by the copy button ✅ Fix: drop $ prefix

Pushing a fix commit now.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 8, 2026

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://ssl-saas-dcv-conflicting-txt-records.previews.developers.cloudflare.com (commit c7e0d86)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://51a0b181.previews.developers.cloudflare.com c7e0d86 2026-09-08T17:33:26.338Z Visit the dashboard ↗
  • Build: In progress 🔵

View logs ↗
b9013fc 2026-09-08T16:56:26.453Z View logs ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://cfcbda3b.previews.developers.cloudflare.com 067d773 2026-09-08T16:42:48.329Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://9494273f.previews.developers.cloudflare.com b0b8867 2026-09-08T16:05:35.423Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://d46ad40d.previews.developers.cloudflare.com 79df245 2026-09-08T15:17:45.603Z Visit the dashboard ↗

ngayerie commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

[AI] Triage of latest bot review on commit 79df245:

ID Finding Decision
CR-a13475f699f6 Incomplete diagnostic logic — dig TXT follows the CNAME chain and returns the delegated token at the target, not any hardcoded TXT at the source name. The two-step CNAME-then-TXT diagnostic is therefore misleading when the CNAME is present. ✅ Fix: simplify to CNAME-only check; explain that if CNAME is present but validation is stuck, the conflict must be verified by inspecting the customer's direct zone in the dashboard
CR-af09465385b6 Alexa ranking reference is stale (Alexa discontinued May 2022) — this is pre-existing content that landed in my diff via a quote-style change ✅ Fix: remove the Alexa clause, keep the Google Safe Browsing reference

Pushing a fix commit now.

ngayerie commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

[AI] SG-4b559d5150c8: ✅ Fixing — rewriting passive voice on line 19 in active voice.

ngayerie commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

[AI] CR-89c4a73d7fa4: ✅ Fixing — adding the dig TXT command for the case where CNAME returns nothing, so the diagnostic step is complete and actionable.

ngayerie commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

[AI] SG-f0c7f14de46e + SG-8514f13b21bf: ✅ Fixing both — wrapping bare TXT in backticks on lines 78 and 84.

@baubuchon-cf baubuchon-cf left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Verified the TXT-record persistence claim against the COMS source (cleanup logic explicitly skips TXT records it didn't place) — root cause checks out. Dig commands and anchors are correct. Approving.

@ngayerie
ngayerie merged commit 0eaedbf into production Sep 8, 2026
16 checks passed
@ngayerie
ngayerie deleted the ssl-saas-dcv-conflicting-txt-records branch September 8, 2026 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants