Troubleshooting
Pages workflow fails on initial commit
If setup-node fails with "Some specified paths were not resolved, unable to cache dependencies", the history repo is missing web/package-lock.json and the vendored @actions-insights/history-models package.
See Fixing an already-created history repository in the deployment guide.
Pages build fails with TypeScript errors
If the Pages workflow fails during npm run build with errors like:
Cannot find module './encoding'invendor/history-models/src/index.tsType 'RunSummary[]' is not assignable to type 'EnrichedRun[]'inBranchPage.tsx- Implicit
anytypes inRunDetailPage.tsx
The vendored @actions-insights/history-models package is incomplete or the dashboard source is stale. Schema v2 added encoding.ts alongside index.ts, and older dashboard copies may still include removed pages such as BranchPage.tsx.
Re-sync the dashboard from a current actions-insights checkout:
bash scripts/update-history-repo.sh update <owner>/<history-repo> --verify --yes
Or fix manually:
- Delete
web/src/pages/BranchPage.tsxif it still exists - Re-vendor history-models:
bash scripts/prepare-standalone-web.sh /path/to/history-repo/web packages/history-models --verify
- Commit
web/vendor/history-models/src/encoding.ts, the updatedweb/package-lock.json, and any removed stale files - Push to
main
node_modules committed to git
If web/node_modules/ was committed (for example before .gitignore was added), remove it from version control:
cp /path/to/actions-insights/templates/history-repo/.gitignore .gitignore
git rm -r --cached web/node_modules
git commit -m "Stop tracking web/node_modules"
git push
Or run bash scripts/update-history-repo.sh update <owner>/<history-repo> from an actions-insights checkout to open a PR with the fix.
History publish skipped
- Verify
history-enabled: true - Ensure
history-repositoryis set - Ensure
history-tokensecret is configured and hascontents: write
History publish fails on fork PR
Fork PRs triggered by pull_request cannot access repository secrets. If history-enabled: true is set unconditionally, history-token will be empty and the step can fail.
Guard with a same-repo check:
history-enabled: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
See Add the Action.
Push conflicts
Multiple workflows pushing simultaneously may conflict on shared index files (repositories.json, branch indexes, history.json). Each source repository mostly writes under its own subtree, but concurrent runs from the same repository (for example, a PR workflow and a push to main finishing together) are the most common cause of conflicts.
The action retries automatically — up to 3 attempts with rebase, backoff, and a fresh clone between retries. If failures persist:
- Add a workflow concurrency group to serialize history publishes (recommended)
- Check history repo branch protection rules allow pushes
If you see History publish failed (attempt 1/3) followed by success on a later attempt, a transient conflict was resolved automatically. Persistent failures after all 3 attempts usually mean too many concurrent writes or branch protection blocking pushes.
Dashboard 404
- Confirm GitHub Pages is enabled (Actions source)
- Check the Pages workflow completed successfully
- Verify
VITE_BASE_PATHmatches your Pages URL (/{repo-name}/for project pages)
Deep links do not load
The dashboard uses hash-based URLs (for example .../repo-name/#/r/owner.repo/b/main/run/1). Path-based URLs without the # (for example .../repo-name/r/owner.repo/...) will not work on GitHub Pages.
If you have an older dashboard build that used path-based routing, run bash scripts/update-history-repo.sh update <owner>/<history-repo> to pick up hash routing.
Blank page after dashboard update
The dashboard uses HashRouter for GitHub Pages. Do not set basename on HashRouter — unlike BrowserRouter, it applies to the hash segment, not the repo path, and causes the router to match no routes. VITE_BASE_PATH is only for static assets and data fetches (import.meta.env.BASE_URL).
If the site is blank after updating, run bash scripts/update-history-repo.sh update <owner>/<history-repo> to pick up the latest dashboard build.
Empty repository list
- Confirm the action has published at least one run
- Check
data/repositories.jsonexists in the history repo - Verify JSON was copied into the Pages deploy artifact
Token permission errors
The history-token must have write access to the history repository, not just the source repository.