-
-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Common issues and how to resolve them. ContribKit maps every failure to a typed Failure and a clear HTTP status (see How It Works), so the message usually points straight at the cause.
Check the username is valid and public. ContribKit only reads public contribution data. If the profile is set to hide its activity, there's nothing to render.
-
404→ GitHub has no such user. Check spelling/case. -
400→ invalid username or year. Years go back to 2005 (GitHub's launch).
- Confirm the username is correct and the profile is public.
- Bad option values (
palette,shape,background) don't break the image — they silently fall back to defaults. So a broken image is about the user/profile, not the params. - GitHub caches README images via Camo. After your activity changes, it can take a while for the cached image to refresh.
GitHub doesn't always emit a <tool-tip> for every cell. ContribKit reports the level (0–4) regardless, but the exact count is null when no tooltip exists for that day, and total is null when no counts were found at all. The calendar still renders correctly. See HTML Parsing.
This usually means GitHub is unreachable or changed the structure of its contributions page.
-
Networkfailure → GitHub returned a non-OK status or the fetch failed; usually transient, retry. -
Parsefailure → zero cells were extracted, which points at a GitHub markup change. The fix lives in one place: the regexes ininfrastructure/github/github-html-contributions-repository.ts. See HTML Parsing.
5xx failures are logged to Better Stack with the username, failure kind, and endpoint.
The API is rate-limited per IP at 100 requests/minute. Back off and retry. For README embeds this is rarely an issue thanks to caching (max-age=3600, stale-while-revalidate=86400).
If a deploy succeeds but per-env routes, ratelimits, or observability are missing, you probably used wrangler deploy --env <env>. With @astrojs/cloudflare the config is flattened at build time — select the env via CLOUDFLARE_ENV=<env> astro build and deploy with a plain wrangler deploy. See Web Application.
The app uses generated copies of the design tokens in app/assets/. If you edited shared/*.json but the app still shows old data, run pnpm sync:assets (or let the lefthook pre-commit hook / CI regenerate them). Never edit app/assets/ by hand. See Project Structure.
Open an issue on github.com/fbuireu/ContribKit.