Frontmatter
| id | 9121 |
| title | DevIndex: Implement "Penalty Box" for Failed User Updates |
| state | Closed |
| labels | bugaiperformance |
| assignees | tobiu |
| createdAt | Feb 12, 2026, 9:48 PM |
| updatedAt | Feb 12, 2026, 9:53 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9121 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9106 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 12, 2026, 9:53 PM |
DevIndex: Implement "Penalty Box" for Failed User Updates
tobiu assigned to @tobiu on Feb 12, 2026, 9:50 PM
tobiu added parent issue #9106 on Feb 12, 2026, 9:50 PM

tobiu
Feb 12, 2026, 9:52 PM
Input from Gemini 3 Pro:
✦ I have implemented the "Penalty Box" logic in
Updater.mjs.Change: Inside the
processUsercatch block, I added:indexUpdates.push({ login, lastUpdate: new Date().toISOString() }); successCount++;Effect: Any user that fails processing (after retries) will now have their
lastUpdatetimestamp set to now. This pushes them to the very end of the priority queue, ensuring the next hourly run picks up fresh, unblocked users. This effectively "unclogs" the pipeline.
tobiu closed this issue on Feb 12, 2026, 9:53 PM
tobiu cross-referenced by #9122 on Feb 12, 2026, 9:55 PM
This task addresses a critical inefficiency in the DevIndex
Updaterservice where "toxic" users (those who consistently trigger 502/504/403 errors) block the update queue.Problem: Currently, when a user update fails, the
Updaterlogs the error but does not update thelastUpdatetimestamp intracker.json. This causes the Scheduler to prioritize these same failed users again in the very next run, creating an infinite loop of failures that wastes API quota (especially with the new hourly workflow).Solution ("The Penalty Box"): Modify
DevIndex.services.Updaterto update thelastUpdatetimestamp to the current time even when an update fails.Logic:
lastUpdate(Standard).lastUpdate(New).Impact: