linkcheck has been red for 13 months, hiding two other broken links
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 84/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- github-actions, jupyter-notebook, markdown
- Domain
- ci-cd, documentation
Research direction
Start with linkcheck.yml and inspect the three cited links in lectures/troubleshooting.md and lectures/wald_friedman.md. Remove the retired forum sentence, repoint the issue tracker, and change the nbviewer branch from master to main. Run the linkcheck workflow and confirm it passes with the intended links resolved.
Written by the indexing model from the issue text.
Description
linkcheck.yml has never passed in this repository's retained run history, and the single dead link causing it is hiding two other genuinely broken links on published pages.
Surfaced while repointing mle.md's data download in #61, whose CI went red for reasons unrelated to that PR.
The check is not flaky — it has never been green
Queried via gh api --paginate .../workflows/linkcheck.yml/runs: 64 retained runs, 64 failures, zero successes, oldest retained 2025-06-27. That is over 13 months of a red check. It also fails on unrelated pull requests — four dependabot branches on 2026-08-10, and #61 — because the workflow triggers on pull_request: [opened, reopened] as well as the daily 0 12 * * * cron.
The finding set is stable, not intermittent: runs 31595997149 (2026-08-12) and 31387608029 (2026-08-10) are byte-identical. 58 working, 39 unchecked, 3 redirected, 2 broken.
What is actually broken
1. lectures/troubleshooting.md:68 — https://discourse.quantecon.org/ does not resolve.
The forum was deliberately retired in March 2025 (announced in QuantEcon/website #157). The DNS record is gone entirely — host returns NXDOMAIN, not a missing A record — so the failure is NameResolutionError rather than a 404.
There is no replacement forum to point at: the closure announcement said QuantEcon "will be evaluating new platforms", the Hivebrite evaluation was declined, and GitHub Discussions is disabled on every public QuantEcon repo except meta. So the fix is to delete the sentence, not substitute a URL — and that is exactly what QuantEcon/lecture-python.myst did in commit 19a6874, which removed the line outright and left the issue tracker and contact@quantecon.org as the remaining feedback routes. lecture-python-intro and lecture-python-advanced.myst are already clean the same way. This repo is drift from a fix that was applied to three repos and never swept.
2. lectures/wald_friedman.md:761 — nbviewer 404, and it is a one-word fix.
The link is https://nbviewer.org/github/QuantEcon/lecture-python.notebooks/blob/master/wald_friedman.ipynb. The branch segment says master; that repository's default branch is main. The notebook exists (72,661 bytes) and the same URL with /main/ returns 200. Independently reproduced with curl. This has been sitting behind the red check the entire time.
3. lectures/troubleshooting.md:63 — the issue-tracker link lands on an archived, read-only tracker.
https://github.com/QuantEcon/lecture-python/issues redirects to https://github.com/QuantEcon/lecture-python.rst/issues, and that repository is archived. Readers cannot open an issue there.
Reported as a redirect rather than as broken, so linkcheck will not fail on it — but combined with item 1 it means both feedback routes this page offers are dead ends: the forum does not resolve, and the tracker does not accept.
Suggested fix
All three are in two files and can land in one PR, after which the check should go green:
| File | Line | Change |
|---|---|---|
lectures/troubleshooting.md |
68 | delete the discourse sentence (follow lecture-python.myst@19a6874) |
lectures/troubleshooting.md |
63 | repoint the tracker to this repository's own issues |
lectures/wald_friedman.md |
761 | master → main in the nbviewer URL |
Two notes for whoever picks this up
Merging will not clear the live site. This repo publishes on a publish* tag, so stats.quantecon.org keeps serving the current build — and the dead link — until a publish is tagged. The generated lecture-stats.notebooks mirror regenerates at that same moment.
The boilerplate problem is wider than this repo, and is tracked upstream. An org-wide sweep found discourse.quantecon.org in 55 repositories / 165 lines, including 13 lecture-series repos and 11 live published pages. The issue-tracker defect in item 3 is also boilerplate-wide — 9 of 12 live troubleshooting.md files point at the same archived tracker. That whole surface is QuantEcon/meta#356; this issue is deliberately scoped to the one repository where a check is actually red and the fix needs no decision from anyone.
- Dominant language
- Jupyter Notebook
- Stars
- 2
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from QuantEcon/lecture-stats
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
QuantEcon/lecture-stats#30 ·
-
bug
QuantEcon/lecture-stats#22 · 3 comments · 1 assignee ·
All issues in QuantEcon/lecture-stats
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sympozium-ai/sympozium#627 ·
-
repo:raw-data
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
hotosm/raw-data-api#316 · 1 comment ·
-
agentic-workflows cascade-suspected
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
willow
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
openedx/openedx-authz#460 ·