Frontmatter
| id | 9225 |
| title | Handle GitHub IP allow list errors gracefully in Updater |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Feb 21, 2026, 3:11 PM |
| updatedAt | Feb 21, 2026, 3:18 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9225 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 21, 2026, 3:18 PM |
Handle GitHub IP allow list errors gracefully in Updater
tobiu assigned to @tobiu on Feb 21, 2026, 3:18 PM

tobiu
Feb 21, 2026, 3:18 PM
Input from Gemini 3 Pro:
✦ I have implemented the graceful degradation logic for IP Allow List errors.
GitHub.mjs: Added error detection inside thequerymethod. When an "IP allow list enabled" error is caught from the GraphQL response, the client now logs a warning but returns the partialjson.data(which contains the public contributions) instead of throwing a fatal error.Updater.mjs: Inside thefetchUserDatafallback loop, any secondary exceptions containing the "IP allow list" error string are now caught and skipped via acontinuestatement, ensuring that the entire update batch does not fail over one blocked year.This ensures these users are successfully processed, their arrays remain sequentially intact (with
0values automatically filling the restricted periods), and they avoid congesting the Penalty Box (failed.json). Changes pushed todev. Closing.
tobiu closed this issue on Feb 21, 2026, 3:18 PM
Some organizations on GitHub restrict access to their data via an "IP allow list". When the DevIndex Updater attempts to fetch contribution data for a user who belongs to such an organization, the GraphQL query fails with an "IP allow list enabled" error.
Currently, this causes the entire user update to fail, placing them in the "Penalty Box" (
failed.json) for continuous, doomed retries.Tasks:
Updater.mjs: Inside thefetchUserDatamethod, specifically within the year-by-year fallback loop, catch errors containing the phrase "IP allow list enabled".continue. This will effectively treat the blocked year(s) as having 0 contributions (or missing data) but allow the rest of the user's profile and unblocked years to be successfully processed and saved.