Investigate 500 errors caused by GleanSearchCrawlerBot
Summary
Starting around 2025-06-05 06:00 UTC, we observed a significant increase in API error rates caused by a single user agent called GleanSearchCrawlerBot. The errors are primarily occurring in a single root namespace and are still ongoing as of 2025-06-13 (though at a slightly reduced rate).
Background
- Impact: High error rate affecting our error budget
- Source:
- Single user agent
GleanSearchCrawlerBot - Single user ID: 25982361 (bot user:
group_5892345_bot_e0274bf2bdedfe8e1726720f7526c348)
- Single user agent
- Success rate: ~50% overall, varies by project
Error Details
Primary error type:
Errno::ENOENT
No such file or directory @ rb_sysopen - /srv/gitlab/shared/external-diffs/merge_request_diffs/mr-ABC/diff-XYZ
Pattern:
- Almost all API errors come from one user agent / user / root namespace
- Errors occur when requesting Merge Request diffs
- Missing external diff files may be the root cause
Investigation Areas
-
Root Cause Analysis
- Determine why external diff files are missing for these projects
- Investigate if this is related to a migration from self-managed GitLab
- Check if migration process missed external diff files
-
Glean Integration
- Confirm what Glean is and its purpose (appears to be search/indexing service)
- Review Glean connector documentation: https://www.glean.com/connectors/gitlab
-
Customer Communication
- Verify if customer has intentionally enabled this integration
- Follow up on account team inquiry in Slack
- Questions for cutomer
- Did they recently migrate from self-managed GitLab to GitLab.com?
- Are they intentionally using the Glean search integration?
- Are they experiencing any issues with merge request diffs in their projects?
- When did they first enable/configure the Glean integration?
Next Steps
- Immediate: Continue monitoring error rates and impact
- Short-term: Get customer input on recent changes and Glean usage
- Medium-term: Determine if missing diffs need restoration or if bot behavior needs adjustment
Monitoring
- Error budget impact: https://dashboards.gitlab.net/goto/OBQq4yYHR?orgId=1
- Logs: https://log.gprd.gitlab.net/app/r/s/st99Y
Edited by François Rosé