Repository navigation
Conversation
Since 2026-08-24 one United States user's contributions have been too costly for GitHub to return: the page holding them fails with RESOURCE_LIMITS_EXCEEDED or a non-JSON timeout body. SearchUsers retried the same page every time, so all ten retries hit the same user and log.Fatalln failed the whole location. Now a failing page is retried in place one user at a time. When a single user still fails three times while a light query for them succeeds, that user is skipped and logged, and the search goes on. The retry limit counts consecutive errors only, and more than ten skips still fails the run so a broken search cannot publish an empty page. Also drop totalPullRequestContributions: nothing reads it, and it is the field named in the RESOURCE_LIMITS_EXCEEDED errors. Fixes ashkulz#145
tmlayton
added a commit
to tmlayton/committers.top
that referenced
this pull request
Oct 28, 2026
Generated by the daily update workflow on tmlayton/committers.top with the fix in ashkulz#149 (run 40580390211). Two users whose data GitHub refuses to return (colinhacks, punkpeye) are not in this list.
tmlayton
force-pushed
the
fix-145-skip-unloadable-user
branch
from
October 28, 2026 05:30
322ec05 to
b7ce4e2
Compare
Author
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #145. Refs #143.
Why United States stopped updating on 2026-08-24
One United States user's data is now too costly for GitHub to return. Every request for the page that holds them fails, either with
RESOURCE_LIMITS_EXCEEDEDoncontributionsCollectionor with a timeout body that is not JSON.SearchUsersretries the same page every time, so all ten retries hit the same user andlog.Fatalln("Too many errors received. Quitting.")fails the whole location. No code onmasterchanged since March, so this is data-driven: other countries do not hold that user.Evidence from upstream
daily updateruns that pickedunited_states:RESOURCE_LIMITS_EXCEEDEDon the same pagedata, 2 non-JSON, then 6 identicalRESOURCE_LIMITS_EXCEEDEDChange (
github/github.goonly, plus tests)login,followers) succeeds, that user is skipped and logged asSkipping <login>: …; the search continues after them. If the light query also fails, nothing is skipped (so rate limits or outages never drop users).totalPullRequestContributions: nothing reads it, and it is the field named in theRESOURCE_LIMITS_EXCEEDEDerrors.Tests
github/github_test.goadds a fake search API (no network) that honoursfollowers:<N,first/afterand the 1000-result cap:With the skip turned off, the skip tests fail with the production message
Too many errors received. Quitting..go fmt,go vet ./...,go build ./...,go test ./...pass;golintreports no new warnings.United States verify run
Ran this change through my fork's
daily updateworkflow forunited_statesonly (run 40580390211, green). It pushed 4c6f9ea63, the first United States refresh since 2026-08-24:generatedmin_followers_requiredtotal_user_countTop of the new list: 1. jverkoey 159,050 · 2. steipete 102,696 · 3. lalalune 49,065 · 4. rgbkrk 28,775 · 5. vincentkoc 27,760.
What the log shows:
colinhacksandpunkpeye. Each failed four times in a row withRESOURCE_LIMITS_EXCEEDEDoncontributionsCollection, also at page size 1, so they are the users who have blocked the location. They are left out of this run's list; that is the trade-off of this fix.totalPullRequestContributionsgone, the error now namesrestrictedContributionsCount. So dropping the unused field does not fix this on its own; the skip does.<) timeout bodies. All recovered; none caused a skip.(The fork-only branch
verify-145adds a dispatch input to run one location,permissions: contents: writebecause a fork's default token is read-only, and prints the generator log. None of that is in this PR.)Relation to #146 and #148
Both target this issue. #146 halves the page size on
RESOURCE_LIMITS_EXCEEDEDand resets the retry count, which cannot get past a user who fails at page size 1 or with a non-JSON timeout (most of the logs above). #148 skips such a user, like this PR, in a larger rewrite (github.go+262/−129). This PR is a smaller version of that skip (github.go+141/−91, plus tests). It adds a real United States run as evidence (above). Happy to close this in favour of #148 if you prefer that one.