GitLab CI loop of empty posts for PR decoration when quality gate fails

Hi @pierreguillot and @Clement_Stoquart, I have exactly the same issue !
But I found something interesting.
For me the problem that the POST request to GitLab to decorate de PR return nothing !
If I execute it with curl for exemple, I have this answerd :
(52) Empty reply from server
So, I found something.
Here you can see the request to GitLab (from ce.log) :

2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][GitlabPrHttpClient] post note : [https://[mygitlab]/api/v4/projects/588/merge_requests/7/notes?body=%23%23+SonarQube+Code+Analysis++%0A%23%23+Quality+Gate+failed++%0A%5B%21%5BQuality+Gate+failed%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FQualityGateBadge%2Ffailed.svg+%27Quality+Gate+failed%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29%0A%0A%5B%21%5BFailed+condition%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FFailedConditionIcon.svg+%27Failed+condition%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29+%5B%21%5BD%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FD.svg+%27D%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29+Maintainability+Rating+on+New+Code+%28is+worse+than+A%29++%0A%0A%5BSee+analysis+details+on+SonarQube%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29%0A%0A%23%23+Additional+information%0A%0A*The+following+metrics+might+not+affect+the+Quality+Gate+status+but+improving*++%0A*them+will+improve+your+project+code+quality.*%0A%0A%23%23%23+2+Issues%0A%0A%5B%21%5BBug%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fbug.svg+%27Bug%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DBUG%29+%5B%21%5BA%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FA.svg+%27A%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DBUG%29+%5B0+Bugs%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DBUG%29++%0A%5B%21%5BVulnerability%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fvulnerability.svg+%27Vulnerability%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%5B%21%5BA%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FA.svg+%27A%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%5B0+Vulnerabilities%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%28and+%5B%21%5BSecurity+Hotspot%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fsecurity_hotspot.svg+%27Security+Hotspot%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fsecurity_hotspots%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29+%5B0+Security+Hotspots%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fsecurity_hotspots%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29+to+review%29++%0A%5B%21%5BCode+Smell%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fcode_smell.svg+%27Code+Smell%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DCODE_SMELL%29+%5B%21%5BD%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FD.svg+%27D%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DCODE_SMELL%29+%5B2+Code+Smells%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DCODE_SMELL%29%0A%0A%23%23%23+Coverage+and+Duplications%0A%0A%5B%21%5B0.0%25%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FCoverageChart%2F0.svg+%270.0%25%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26metric%3Dnew_coverage%26view%3Dlist%29+%5B0.0%25+Coverage%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26metric%3Dnew_coverage%26view%3Dlist%29+%280.0%25+Estimated+after+merge%29++%0A%5B%21%5B0.0%25%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FDuplications%2F3.svg+%270.0%25%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26metric%3Dnew_duplicated_lines_density%26view%3Dlist%29+%5B0.0%25+Duplication%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26metric%3Dnew_duplicated_lines_density%26view%3Dlist%29+%280.0%25+Estimated+after+merge%29%0A%0A]
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> 0x00000009  4215 HEADERS       END_HEADERS
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> 0x00000009     0 DATA          END_STREAM
2020.03.27 11:39:44 DEBUG ce[][o.i.http2.Http2] << 0x00000000     8 GOAWAY        
2020.03.27 11:39:44 DEBUG ce[][o.i.http2.Http2] >> 0x00000009     4 RST_STREAM    
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> CONNECTION 505249202a20485454502f322e300d0a0d0a534d0d0a0d0a
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> 0x00000000     6 SETTINGS      
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> 0x00000000     4 WINDOW_UPDATE 
2020.03.27 11:39:44 DEBUG ce[][o.i.http2.Http2] << 0x00000000    18 SETTINGS      
2020.03.27 11:39:44 DEBUG ce[][o.i.http2.Http2] << 0x00000000     4 WINDOW_UPDATE 
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> 0x00000003  4273 HEADERS       END_HEADERS
2020.03.27 11:39:44 DEBUG ce[][o.i.http2.Http2] >> 0x00000000     0 SETTINGS      ACK
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> 0x00000003     0 DATA          END_STREAM
2020.03.27 11:39:44 DEBUG ce[][o.i.http2.Http2] << 0x00000000     0 SETTINGS      ACK
2020.03.27 11:39:44 DEBUG ce[][o.i.http2.Http2] << 0x00000000     8 GOAWAY        
2020.03.27 11:39:44 DEBUG ce[][o.i.http2.Http2] >> 0x00000003     4 RST_STREAM    
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> CONNECTION 505249202a20485454502f322e300d0a0d0a534d0d0a0d0a
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> 0x00000000     6 SETTINGS      
2020.03.27 11:39:44 DEBUG ce[AXEbk3C-wQkVRUs0LDky][o.i.http2.Http2] >> 0x00000000     4 WINDOW_UPDATE 

And here you can see the same request but with less characters… And if I play this HTTP request to GitLab with less characters, the result is OK. So may be the issue is around this…

root@sdlsonar01:/opt/sonarqube/logs# curl -X POST https://[mygitlab]/api/v4/projects/588/merge_requests/7/notes?body=%23%23+SonarQube+Code+Analysis++%0A%23%23+Quality+Gate+failed++%0A%5B%21%5BQuality+Gate+failed%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FQualityGateBadge%2Ffailed.svg+%27Quality+Gate+failed%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29%0A%0A%5B%21%5BFailed+condition%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FFailedConditionIcon.svg+%27Failed+condition%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29+%5B%21%5BD%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FD.svg+%27D%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29+Maintainability+Rating+on+New+Code+%28is+worse+than+A%29++%0A%0A%5BSee+analysis+details+on+SonarQube%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29%0A%0A%23%23+Additional+information%0A%0A*The+following+metrics+might+not+affect+the+Quality+Gate+status+but+improving*++%0A*them+will+improve+your+project+code+quality.*%0A%0A%23%23%23+2+Issues%0A%0A%5B%21%5BBug%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fbug.svg+%27Bug%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DBUG%29+%5B%21%5BA%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FA.svg+%27A%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DBUG%29+%5B0+Bugs%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DBUG%29++%0A%5B%21%5BVulnerability%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fvulnerability.svg+%27Vulnerability%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%5B%21%5BA%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FA.svg+%27A%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%5B0+Vulnerabilities%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%28and+%5B%21%5BSecurity+Hotspot%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fsecurity_hotspot.svg+%27Security+Hotspot%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fsecurity_hotspots%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29+%5B0+Security+Hotspots%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fsecurity_hotspots%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%29+to+review%29++%0A%5B%21%5BCode+Smell%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fcode_smell.svg+%27Code+Smell%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DCODE_SMELL%29+%5B%21%5BD%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FD.svg+%27D%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DCODE_SMELL%29+%5B2+Code+Smells%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26resolved%3Dfalse%26types%3DCODE_SMELL%29%0A%0A%23%23%23+Coverage+and+Duplications%0A%0A%5B%21%5B0.0%25%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FCoverageChart%2F0.svg+%270.0%25%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26metric%3Dnew_coverage%26view%3Dlist%29+%5B0.0%25+Coverage%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26metric%3Dnew_coverage%26view%3Dlist%29+%280.0%25+Estimated+after+merge%29++%0A%5B%21%5B0.0%25%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FDuplications%2F3.svg+%270.0%25%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.production-immobilisee%253Aproduction-immobilisee-back%26pullRequest%3D7%26metric%3Dnew_duplicated_lines_density%26view%3Dlist%29+%5B0.0%25+Duplication%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.production-immobilisee

After, I took another projet on my GitLab, and I ran a similar test, and all works fine !
Here the real HTTP request form ce.log :

2020.03.27 13:39:06 DEBUG ce[][o.i.http2.Http2] << 0x00000007     4 WINDOW_UPDATE 
2020.03.27 13:39:06 DEBUG ce[][o.i.http2.Http2] << 0x00000007   212 HEADERS       END_STREAM|END_HEADERS
2020.03.27 13:39:06 DEBUG ce[AXEcAMFRCQSWepU1x61K][GitlabPrHttpClient] post note : [https://[mygitlab]/api/v4/projects/33/merge_requests/622/notes?body=%23%23+SonarQube+Code+Analysis++%0A%23%23+Quality+Gate+failed++%0A%5B%21%5BQuality+Gate+failed%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FQualityGateBadge%2Ffailed.svg+%27Quality+Gate+failed%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%29%0A%0A%5B%21%5BFailed+condition%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FFailedConditionIcon.svg+%27Failed+condition%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%29+%5B%21%5BD%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FD.svg+%27D%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%29+Maintainability+Rating+on+New+Code+%28is+worse+than+A%29++%0A%0A%5BSee+analysis+details+on+SonarQube%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fdashboard%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%29%0A%0A%23%23+Additional+information%0A%0A*The+following+metrics+might+not+affect+the+Quality+Gate+status+but+improving*++%0A*them+will+improve+your+project+code+quality.*%0A%0A%23%23%23+37+Issues%0A%0A%5B%21%5BBug%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fbug.svg+%27Bug%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DBUG%29+%5B%21%5BA%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FA.svg+%27A%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DBUG%29+%5B0+Bugs%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DBUG%29++%0A%5B%21%5BVulnerability%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fvulnerability.svg+%27Vulnerability%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%5B%21%5BA%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FA.svg+%27A%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%5B0+Vulnerabilities%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DVULNERABILITY%29+%28and+%5B%21%5BSecurity+Hotspot%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fsecurity_hotspot.svg+%27Security+Hotspot%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fsecurity_hotspots%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%29+%5B0+Security+Hotspots%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fsecurity_hotspots%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%29+to+review%29++%0A%5B%21%5BCode+Smell%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fcommon%2Fcode_smell.svg+%27Code+Smell%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DCODE_SMELL%29+%5B%21%5BD%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FRatingBadge%2FD.svg+%27D%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DCODE_SMELL%29+%5B37+Code+Smells%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fproject%2Fissues%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26resolved%3Dfalse%26types%3DCODE_SMELL%29%0A%0A%23%23%23+Coverage+and+Duplications%0A%0A%5B%21%5B100.0%25%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FCoverageChart%2F100.svg+%27100.0%25%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26metric%3Dnew_coverage%26view%3Dlist%29+%5B100.0%25+Coverage%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26metric%3Dnew_coverage%26view%3Dlist%29+%2844.2%25+Estimated+after+merge%29++%0A%5B%21%5B0.0%25%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fstatic%2Fdeveloper-server%2Fchecks%2FDuplications%2F3.svg+%270.0%25%27%29%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26metric%3Dnew_duplicated_lines_density%26view%3Dlist%29+%5B0.0%25+Duplication%5D%28https%3A%2F%2Fsonarqube.int.rcacloud.it%2Fcomponent_measures%3Fid%3Dfr.rca.caisse%253Acaisse%26pullRequest%3D622%26metric%3Dnew_duplicated_lines_density%26view%3Dlist%29+%282.1%25+Estimated+after+merge%29%0A%0A]
2020.03.27 13:39:06 DEBUG ce[AXEcAMFRCQSWepU1x61K][o.i.http2.Http2] >> 0x00000009  3748 HEADERS       END_HEADERS
2020.03.27 13:39:06 DEBUG ce[AXEcAMFRCQSWepU1x61K][o.i.http2.Http2] >> 0x00000009     0 DATA          END_STREAM
2020.03.27 13:39:06 DEBUG ce[][o.i.http2.Http2] << 0x00000009     4 WINDOW_UPDATE 

To resume, it works for me but only for some projects (where the URL and params used in POST to GitLab is not too long…).
So it’s maybe an issue in GitLab rather than sonarqube ?

So I look on the GitLab documentation (here) and they said

body (required) - The content of a note. Limited to 1,000,000 characters.

:thinking: Well, OK so I checked my characters number for the first wrong request !
And the result is : 5817 Hum Hum…
So to conclude I don’t really understand what is going on… :pensive:

@Clement_Stoquart did you try with another project from your gitlab ?

Look like indeed that gitlab.com return errors when the url is too long. But the limit looks weird.

This request fail, but if you remove one character, it works. So the limit size for gitlab.com would be 8194 characters.

curl --header "Private-Token: XXXXXXXXXXXXXXXXXXX" -X POST "https://gitlab.com/api/v4/projects/xxxxxxx/merge_requests/4/notes?body=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

Yes, indeed that’s exactly what am I looking, but my request has 5817 characters and the Clement’s request around 6754… May be there are specials characters in the URL ? o_O

Maybe it’s just a configuration around de frontend server (nginx/apache)… With a default buffer limit for URL…

http://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers

I am try this right now for my self hosted gitlab.
I’ll keep you in touch.

@andav Hi, yes I tried with 2 different projects. Same results :confused:

Well well well…
Good news guys !
I found something !

@Clement_Stoquart if you have an nginx server you should try this configuration :

# This is for each field
http2_max_field_size 32k
# This is for all the URL
http2_max_header_size 64k

http://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_field_size

Annnnnnd it’s magic… :wink:

If you use self hosted gitlab with nginx server bundle, you have to modify this file :
/var/opt/gitlab/nginx/conf/gitlab-http.conf
:warning: But, be careful, when you upgrade your version the configuration will erase it !

Self-hosted GitLab didn’t allowed to override this nginx parameters configuration for now… What a mess…

So I created a support ticket to Gitlab to allowed it. Wait & See…

See you guys.

Antoine

@Clement_Stoquart I found the right solution to modify it.
You should edit the gitlab.rb and this configuration :

nginx['custom_gitlab_server_config'] = "large_client_header_buffers 4 32k;\nhttp2_max_field_size 32k;\nhttp2_max_header_size 64k;\n"

And after :
sudo gitlab-ctl reconfigure

1 Like

Thanks @andav

I’m going to try this asap :slight_smile:

Thanks for the update. If @Clement_Stoquart confirm this solution, we will add it to the SonarQube documentation :slight_smile: cc @Mike_Birnstiehl

1 Like

Hi @pierreguillot,

It works for me too :slight_smile:
Thanks again @andav

1 Like

Thanks guys for your contributions to troubleshoot this issue!

I created SONAR-13290 to address that, both on the SonarQube okhttp client (we should be able to detect 414 uri-too-long and fail accordingly), and to add this recommended configuration in the SonarQube documentation.

For users reading this before the fix is available, not that this issue can happen regardless of the quality gate, and with https or not. The thing is that the payload for failing quality gate is longer (because we display the failing condition). So it’s just more likely to happen on a failing quality gate, but could also happen on a green quality gate.

2 Likes

We are having this issue too, we run several gitlab instances so it’s probably needed to change all of them. While it’s definitely useful to make sure Sonarqube fails gracefully in this case, but if this is a systemic issue, would it make sense to consider fixing the merge request decoration feature so it fits the default buffer?

Hi, this issue has been fixed in SonarQube 8.6 that should be released next week. The nginx configuration workaround won’t be needed anymore :partying_face:

2 Likes

Hi,

SonarQube 8.6 is now available!
Thanks all for your help.