Skip to content

Fix links that land readers somewhere other than their target - #937

Open
jacobmattern wants to merge 1 commit into
mainfrom
docs/link-sweep
Open

Fix links that land readers somewhere other than their target#937
jacobmattern wants to merge 1 commit into
mainfrom
docs/link-sweep

Conversation

@jacobmattern

Copy link
Copy Markdown
Contributor

Sweep of every link, anchor and redirect in the repo, verified against the live site at https://docs.vast.ai. Only links that were broken or landed on the wrong page are changed here — a link that reaches the right page through a redirect is left alone, even where the path is stale.

Dead anchors (19)

The fragment does not exist on the target page, so the reader lands at the top and has to hunt for the section. Mintlify keeps characters a conventional slugifier drops, so the working anchors include #jupyter-/-ide-access, #provisioning_script and #configuring-application-access-with-portal_config. Every replacement was taken from the id attributes on the rendered page, not computed.

Two legacy hashes (#1SmCz, #Yj5Wh) pre-date a page move; their paths are updated alongside the anchor, since the fix would otherwise depend on the fragment surviving a redirect.

Link resolving to a different page

data-movement.mdx linked ./#constraints, which Mintlify renders as href="/guides/instances/storage#constraints" — a different path, not the section further down the same page. Now #constraints.

External links returning 404 (3)

Was Now
docs.vllm.ai/en/latest/serving/engine_args.html docs.vllm.ai/en/latest/configuration/engine_args/
dstack.ai/docs/reference/cli/ (no index page) dstack.ai/docs/reference/cli/dstack/apply/
huggingface.co/collections/fastino/gliner2 huggingface.co/collections/fastino/gliner2-family

Links landing on a generic page instead of the one they named (3)

  • vast.ai/console/host/setup/ dropped readers on the console root → cloud.vast.ai/host/setup/
  • vast.ai/faq#RentalTypes lost its section → /guides/reference/faq/rental-types
  • vast.ai/docs/cli/reference/search-offers landed on the get-started guide → /cli/reference/search-offers

Redirects

Mintlify resolves redirects before pages, so a redirect whose source matches a real page makes that page unreachable:

  • /cli/templates and /guides/pricing were sending readers away from live navigation entries. /guides/pricing is also the target of the landing page's Pricing card. Both redirects removed so the pages they shadow can be served.
  • Four sources ending in .md (/api/update-autogroup.md and three siblings) could never match — the .md view suffix is stripped before redirect matching, so /api/:slug* caught them and readers reached /api-reference/introduction.md instead of the endpoint page. Re-sourced without the extension.

Verification

  • 241 unique (path, anchor) targets fetched live: every anchor present in the rendered HTML, no broken links.
  • All 208 redirects followed with curl -L to the page the reader actually lands on. A one-hop probe misreports trailing-slash normalisation, which is what produced the earlier false alarms.
  • mint@4.2.862 broken-links reports none. Note the pinned ^4.2.234 in package.json cannot resolve docs.json redirects or OpenAPI-generated routes and reports ~145 false positives — tracked separately.

Three outcomes only take effect once this deploys and cannot be confirmed before then: /guides/pricing serving its page, and the four re-sourced /api/* redirects reaching their endpoint pages.

Deliberately unchanged

47 links pointing at redirect sources, absolute docs.vast.ai self-links, and similar stale-but-working paths. They all resolve to the correct page today, so they are left as they are.

Verified against docs.vast.ai. Every fix here is a link that was broken or
resolved to the wrong destination; links that already reach the right page
through a redirect are left alone.

Dead anchors, 19 of them. The fragment does not exist on the target page, so
the reader lands at the top and has to hunt for the section. Mintlify keeps
characters a conventional slugifier drops, so the working anchors include
#jupyter-/-ide-access and #provisioning_script. Two legacy hashes (#1SmCz,
#Yj5Wh) predate a page move and are replaced along with their paths, since
the fix depends on the fragment surviving the redirect.

data-movement.mdx linked ./#constraints, which Mintlify resolved to
/guides/instances/storage#constraints, a different page.

Three external links returned 404: vLLM engine_args moved under
/configuration/, the dstack CLI reference has no index page, and the GLiNER2
collection is now gliner2-family.

Three links landed on a generic page instead of the one they named:
vast.ai/console/host/setup/ dropped readers on the console root,
vast.ai/faq#RentalTypes lost its section, and
vast.ai/docs/cli/reference/search-offers landed on the get-started guide.

Redirects. Mintlify resolves redirects before pages, so /cli/templates and
/guides/pricing were sending readers away from live navigation entries and
making both pages unreachable; /guides/pricing is also the target of the
landing page's Pricing card. Four redirect sources ending in .md could never
match, because the .md view suffix is stripped before redirect matching, so
/api/:slug* caught them and readers reached /api-reference/introduction.md
instead of the endpoint page.
@mintlify

mintlify Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
vastai-80aa3a82 🟢 Ready View Preview Sep 3, 2026, 6:43 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

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.

1 participant