Fix txAdmin recipe download 403 and GitHub rate limits
Determine whether a recipe failed from GitHub rate limiting, a missing ref, permissions or network errors without rerunning destructive tasks.
A 403 during a download_github recipe action is not always a GitHub rate limit. The repository may be private, inaccessible, rate-limited, or blocked by another upstream control. First identify the exact failing task, URL and HTTP response.
Identify the cause
- Copy the failed action name, sanitized URL, status, timestamp and artifact/txAdmin version from the deployer logs.
- Check the recipe's GitHub repository in a browser. A removed repository or invalid ref is a different failure from a rate limit.
- On the same hosting machine or container, check the public GitHub API headers, without passing credentials or tokens into issue reports:
curl -sS -D - -o /dev/null https://api.github.com/rate_limit- Inspect
x-ratelimit-remaining,x-ratelimit-reset, response status and the body of a deliberately chosen safe diagnostic request if needed. GitHub's primary and secondary rate limits behave differently; a 403 is not proof of either. - Check shared outbound IP use: many servers on one node may exhaust an unauthenticated IP quota.
Safe recovery
- Use the maintainer's current recipe, verifying the source and ref are available.
- For
download_githubactions, pin a known workingrefso txAdmin need not query GitHub for the default branch. The upstream recipe reference recommends this when many actions are used. - If a primary limit is reached, wait until GitHub says it resets rather than hammering the same task.
- If private repository access or network restrictions are involved, resolve them through a supported upstream workflow; do not add an access token to a public recipe or
server.cfg. - If deployment already wrote files or ran SQL, inspect the partial state. Use a fresh deployment folder and disposable database for a clean retry.
Do not assume GITHUB_TOKEN fixes txAdmin automatically. Native token handling is tracked as a feature proposal, and support depends on your actual txAdmin release.
Check that it worked
Confirm every task completed, server.cfg and resources exist, the game boots, and database-backed functionality persists after reconnect. A single successful download does not prove the complete recipe succeeded.
Sources: Recipe action documentation, GitHub rate limits, reported recipe failures.