Sign in or sign up before continuing. Don't have an account yet? Register now to get started.
Register now

Bot crashes with rate: Wait(n=1) exceeds limiter's burst 0 due to outdated go-gitlab dependency

Description: The issue-bot is crashing during pipeline job processing with the error: 2026/01/27 05:33:20 unable to get failed jobs: unable to list pipeline jobs: rate: Wait(n=1) exceeds limiter's burst 0

Investigation & Root Cause: The error originates from the github.com/xanzy/go-gitlab library's internal rate limiting logic.

The library reads the RateLimit-Limit header from the GitLab API.

It calculates a "burst" size using the formula int((limit / 60) * 0.33).

If the API returns a limit of 60 (requests per minute), the formula becomes int(1 * 0.33).

This truncates to 0.

The rate.NewLimiter is initialized with a burst of 0, causing all subsequent Wait(n=1) calls to fail immediately.

The current master branch of go-gitlab includes a fix for this (checking if burst == 0 { burst = 1 }), but the issue-bot go.mod is pinned to an older version (v0.50.1 vs latest v0.115.0, on top of this this module is deprecated in favor of https://gitlab.com/gitlab-org/api/client-go) where this fix is missing.

Steps to Reproduce:

Run the bot against a GitLab instance/project that returns a RateLimit-Limit of 60 (or lower) in the response headers.

Observe the crash when the bot attempts to list pipeline jobs.

Proposed Solution: Update the github.com/xanzy/go-gitlab dependency in go.mod to the latest version (or a version that comes with a fix).

Assignee Loading
Time tracking Loading