Skip to content

chore: clotton dev alias for isolated testing (SITES-47125)#2749

Draft
clotton wants to merge 4 commits into
mainfrom
fix/SITES-47125-clotton-dev
Draft

chore: clotton dev alias for isolated testing (SITES-47125)#2749
clotton wants to merge 4 commits into
mainfrom
fix/SITES-47125-clotton-dev

Conversation

@clotton

@clotton clotton commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Dev testing branch on top of #2727.

Changes deploy-dev to use the clotton Lambda alias so the audit-worker can be tested in isolation via the developer isolated environments setup (https://wiki.corp.adobe.com/spaces/AEMSites/pages/3532639533).

Do not merge — this branch exists only to trigger a dev deploy. Will be deleted after testing.

johobot and others added 3 commits June 24, 2026 14:14
…TES-47125)

Bot-protected sites like ups.com block crawlers by resetting the connection
(e.g. HTTP/2 ERR_HTTP2_STREAM_ERROR) rather than returning an HTTP status.
Since #2476 (SITES-40919), any thrown fetch error in the GET fallback was
reported as a broken link (status 0), so these valid-but-bot-blocked URLs
became false-positive "Status 0 / Broken External Links" on the dashboard.

Discriminate by error: only a DNS-resolution failure (ENOTFOUND — the domain
does not exist) is a definitive broken link. All other network-level failures
(connection reset, HTTP/2 stream errors, TLS, timeout) mean the host is
reachable but did not return a usable response — indistinguishable from a
valid page that blocks bots — so they are no longer reported.

Preserves the SITES-40919 case (nonexistent domains / intranet hosts that fail
DNS still surface as status 0); fixes the SITES-47125 false positives.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…format

Address MysticatBot review on #2727: the message fallback `/ENOTFOUND/.test()`
matched any error whose message merely contained the substring (e.g. a wrapper
"Retry after ENOTFOUND was cached"), which could re-introduce the false
positives this fix removes.

Primary signal stays `err.code === 'ENOTFOUND'` (Node's DNS resolver always
sets it). The message check is now a narrow fallback: it only fires when no
code is present and matches the canonical `getaddrinfo ENOTFOUND` format.

Added a regression test asserting a non-DNS error containing the substring is
NOT flagged, and clarified the message-fallback test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

This PR will trigger a minor release when merged.

@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Base automatically changed from fix/SITES-47125-bot-blocked-external-links to main July 8, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants