Custom pipeline variables do not populate on initial load of new pipeline page
### Summary When custom pipeline variables are configured for a project on GitLab.com, navigating to the `/-/pipelines/new` page does not consistently fetch the variables. A page refresh is required after loading the page to load the custom variables, and if the page is left idle for some time, a subsequent refresh will also return empty results until another page refresh is performed. Issue reported by a customer in this support ticket: https://gitlab.zendesk.com/agent/tickets/354900 ### Steps to reproduce 1. Create a project on GitLab.com 2. Add a `.gitlab-ci.yml` file containing some variables: ```yml variables: ENVIRONMENT: value: all description: This directs which environment to run against STAGE_OF_PIPELINE: value: test description: This variable defines the pipeline step to run OTHER_CUSTOM_VARIABLE: value: value1,value2 description: This variable sets something ``` 3. Navigate to the `/-/pipelines/new` page for the project, and observe that variables do not populate until the page is refreshed ### Example Project https://gitlab.com/gitlab-silver/dannyjb-test/354900/-/pipelines/new ### What is the current *bug* behavior? The graphql query response when `/-/pipelines/new` page is loaded initially returns empty results: ```json [{"data":{"project":{"id":"gid://gitlab/Project/41966387","ciConfigVariables":null,"__typename":"Project"}}}] ``` When the page is refreshed, the variables are returned as expected: ```json [{"data":{"project":{"id":"gid://gitlab/Project/41966387","ciConfigVariables":[{"description":"This directs which environment to run against","key":"ENVIRONMENT","value":"all","valueOptions":null,"__typename":"CiConfigVariable"},{"description":"This variable defines the pipeline step to run","key":"STAGE_OF_PIPELINE","value":"test","valueOptions":null,"__typename":"CiConfigVariable"},{"description":"This variable sets something","key":"OTHER_CUSTOM_VARIABLE","value":"value1,value2","valueOptions":null,"__typename":"CiConfigVariable"}],"__typename":"Project"}}}] ``` If the page is left idle for some time after refreshing the page, a subsequent refresh will return another empty result and the variables will disappear again. A refresh of the page for the third time will bring the variables back. ### What is the expected *correct* behaviour? The query should load the variables the first time, every time, and not require a page refresh to fetch them correctly. ### Relevant logs and/or screenshots Screen capture: https://www.loom.com/share/6ee198f90e87435289cb392bf080765a ### Output of checks <!-- If you are reporting a bug on GitLab.com, uncomment below --> This bug happens on GitLab.com #### Results of GitLab environment info <!-- Input any relevant GitLab environment information if needed. --> <details> <summary>Expand for output related to GitLab environment info</summary> <pre> (For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`) </pre> </details> #### Results of GitLab application Check <!-- Input any relevant GitLab application check information if needed. --> <details> <summary>Expand for output related to the GitLab application check</summary> <pre> (For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:check SANITIZE=true`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true`) (we will only investigate if the tests are passing) </pre> </details> ### Possible fixes <!-- If you can, link to the line of code that might be responsible for the problem. -->
issue