Error displayed on Merge Request if anonymous
Spotted by @av6 on mercurial/mercurial-devel>, which is quite public.
The red banner says : "An error occurred while retrieving approval data for this merge request."
There is no HTTP error in XHRs, but a GraphQL request (with HTTP code 200) bears an error that seems related
Query:
[{"operationName":"approvedBy","variables":{"projectPath":"mercurial/mercurial-devel","iid":"651"},"query":"query approvedBy($projectPath: ID!, $iid: String!) {\n project(fullPath: $projectPath) {\n id\n mergeRequest(iid: $iid) {\n id\n approvedBy {\n nodes {\n ...User\n __typename\n }\n __typename\n }\n userPermissions {\n canApprove\n __typename\n }\n __typename\n }\n __typename\n }\n}\n\nfragment User on User {\n id\n avatarUrl\n name\n username\n webUrl\n __typename\n}\n"},{"operationName":"rebaseQuery","variables":{"projectPath":"mercurial/mercurial-devel","iid":"651"},"query":"query rebaseQuery($projectPath: ID!, $iid: String!) {\n project(fullPath: $projectPath) {\n id\n mergeRequest(iid: $iid) {\n id\n rebaseInProgress\n targetBranch\n userPermissions {\n pushToSourceBranch\n __typename\n }\n pipelines {\n nodes {\n id\n project {\n id\n fullPath\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n}\n"},{"operationName":"readyToMerge","variables":{"projectPath":"mercurial/mercurial-devel","iid":"651"},"query":"query readyToMerge($projectPath: ID!, $iid: String!) {\n project(fullPath: $projectPath) {\n id\n ...ReadyToMerge\n __typename\n }\n}\n\nfragment ReadyToMerge on Project {\n id\n onlyAllowMergeIfPipelineSucceeds\n mergeRequestsFfOnlyEnabled\n squashReadOnly\n mergeRequest(iid: $iid) {\n ...ReadyToMergeMergeRequest\n __typename\n }\n __typename\n}\n\nfragment ReadyToMergeMergeRequest on MergeRequest {\n id\n detailedMergeStatus\n autoMergeEnabled\n shouldRemoveSourceBranch\n forceRemoveSourceBranch\n defaultMergeCommitMessage\n defaultSquashCommitMessage\n squash\n squashOnMerge\n availableAutoMergeStrategies\n hasCi\n mergeable\n mergeWhenPipelineSucceeds\n commitCount\n diffHeadSha\n userPermissions {\n canMerge\n removeSourceBranch\n updateMergeRequest\n __typename\n }\n targetBranch\n mergeError\n commitsWithoutMergeCommits {\n nodes {\n id\n sha\n shortId\n title\n message\n __typename\n }\n __typename\n }\n headPipeline {\n id\n status\n path\n active\n __typename\n }\n __typename\n}\n"}]
Response:
[
{"data":{"project":{"id":"gid://gitlab/Project/22","mergeRequest":null,"__typename":"Project"}},
"errors":[{"message":"Cannot return null for non-nullable field MergeRequestPermissions.canApprove"}]},
{"data":{"project":{"id":"gid://gitlab/Project/22","mergeRequest":{"id":"gid://gitlab/MergeRequest/11329","rebaseInProgress":false,"targetBranch":"branch/default","userPermissions":{"pushToSourceBranch":false,"__typename":"MergeRequestPermissions"},"pipelines":{"nodes":[{"id":"gid://gitlab/Ci::Pipeline/70041","project":{"id":"gid://gitlab/Project/22","fullPath":"mercurial/mercurial-devel","__typename":"Project"},"__typename":"Pipeline"}],"__typename":"PipelineConnection"},"__typename":"MergeRequest"},"__typename":"Project"}}},
{"data":{"project":{"id":"gid://gitlab/Project/22","onlyAllowMergeIfPipelineSucceeds":true,"mergeRequestsFfOnlyEnabled":true,"squashReadOnly":true,"mergeRequest":{"id":"gid://gitlab/MergeRequest/11329","detailedMergeStatus":"MERGEABLE","autoMergeEnabled":false,"shouldRemoveSourceBranch":false,"forceRemoveSourceBranch":false,"defaultMergeCommitMessage":"Merge branch 'topic/stable/hgweb-baseurl' into 'branch/default'\n\nhgweb: use web.baseurl config in hgweb\n\nSee merge request mercurial/mercurial-devel!651","defaultSquashCommitMessage":"hgweb: use web.baseurl config in hgweb","squash":false,"squashOnMerge":false,"availableAutoMergeStrategies":[],"hasCi":true,"mergeable":false,"mergeWhenPipelineSucceeds":false,"commitCount":1,"diffHeadSha":"f396b7eac2987431888121372058d748dabfcb21","userPermissions":{"canMerge":false,"removeSourceBranch":false,"updateMergeRequest":false,"__typename":"MergeRequestPermissions"},"targetBranch":"branch/default","mergeError":null,"commitsWithoutMergeCommits":{"nodes":[{"id":"gid://gitlab/CommitPresenter/f396b7eac2987431888121372058d748dabfcb21","sha":"f396b7eac2987431888121372058d748dabfcb21","shortId":"f396b7ea","title":"hgweb: use web.baseurl config in hgweb","message":"hgweb: use web.baseurl config in hgweb\n\nThe config was already used by hgwebdir, but not hgweb. It seems like this was\nan oversight, so this changeset makes hgweb use it as well.\n\nThe WSGI handler itself uses an independent copy of the repository. It seems\nexcessive to do that just for fetching a config, so the code fishes the ui\nobject from an existing repository.","__typename":"Commit"}],"__typename":"CommitConnection"},"headPipeline":{"id":"gid://gitlab/Ci::Pipeline/70041","status":"SUCCESS","path":"/mercurial/mercurial-devel/-/pipelines/70041","active":false,"__typename":"Pipeline"},"__typename":"MergeRequest"},"__typename":"Project"}}}]