A deep dive into GraphQL input preparation, GlobalID resolution, Ruby hash normalization, and regression testing in GitLab.
While contributing to GitLab's Work Items Saved Views feature, I investigated a subtle bug where saving a view with a status filter supplied by Global ID silently dropped the filter without returning an error.
The GraphQL mutation completed successfully, the response contained no errors, but the persisted saved view did not retain the requested status filter.
The issue turned out to be an interaction between GraphQL input preparation and the downstream filter normalization service.
In this article, I'll walk through the request flow, identify the root cause, explain the fix, and discuss the regression tests added in GitLab Merge Request !269035 .
1.…