Skip to content

fix(ci): raise lychee timeout and retries - #728

Merged
av1155 merged 1 commit into
mainfrom
fix/lychee-timeout
Aug 11, 2026
Merged

fix(ci): raise lychee timeout and retries#728
av1155 merged 1 commit into
mainfrom
fix/lychee-timeout

Conversation

@av1155

@av1155 av1155 commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Summary

The weekly Link Check has been failing on a summary that looks like a pass:

| ✅ Successful  | 85    |
| ⏳ Timeouts    | 1     |
| 🚫 Errors      | 0     |

lychee counts a timeout as a failure and exits 2, so one slow host turns the
run red with no broken links. All three red runs report the same single URL and
nothing else: https://www.authelia.com/integration/proxies/traefik/, linked
from website/docs/guides/sso-proxy-auth.md:137.

The link is not broken. It answers 200 in 0.2-0.4s on both HEAD and GET from an
ordinary client, so this is specific to Actions runner IPs. It is also
intermittent rather than a hard block: a dispatch on 6 August passed with zero
timeouts about twenty minutes after a PR run failed on the same URL.

Closes #727

Changes

  • timeout 20 to 45, max_retries 2 to 3, retry_wait_time 2 to 3.

Worst case for one bad link becomes roughly three minutes, inside the job's
timeout-minutes: 8. lychee checks concurrently and only this one link is
slow, so normal runtime is unchanged.

Testing

Link Check runs on this PR, since its trigger includes lychee.toml. That is
the real test: it exercises the actual host from an actual runner. Given the
failure is intermittent, one green run is not conclusive, so I re-dispatched it
several times before merging.

If it turns out 45s is still not enough, the follow-up is to exclude the host
with a comment recording that it is unreliable from runners and that the link
was verified good by hand. Excluding it is the fallback rather than the opening
move, because it means the repo stops noticing if Authelia ever moves the page.

Type of Change

  • Bug fix (fix:)
  • New feature (feat:)
  • Refactoring (refactor:)
  • Documentation (docs:)
  • CI/CD (ci:)
  • Chore (chore:)

Checklist

  • Issue exists and is linked above with Closes #N
  • Linked issue has exactly one type:* and one priority:* label
  • Linked issue has at most one phase:* label (or none when not roadmap work)
  • Branch name matches issue scope (feat/<slug>, fix/<slug>, etc.)
  • Tests added/updated for all changes — N/A, checker config; the run is the test
  • Type check passes (mypy src/) — N/A, no Python changed
  • Lint passes (ruff check .) — N/A, no Python changed
  • Format passes (ruff format --check .) — N/A, no Python changed
  • Documentation updated (if applicable) — N/A
  • No secrets or sensitive data committed
  • Scope check: This change helps search for missing or cutoff-unmet media in a controlled way — N/A, repo tooling

A timeout fails the run even though lychee counts it apart from
errors, so one slow host turns the weekly sweep red with zero
broken links. Every red run so far has been the same Authelia URL,
which answers instantly from an ordinary client and stalls only
from Actions runners.

Closes #727
@av1155
av1155 merged commit d2c0eb5 into main Aug 11, 2026
21 checks passed
@av1155
av1155 deleted the fix/lychee-timeout branch August 11, 2026 17:02
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.

ci: link check fails on a single timeout with zero errors

1 participant