# SonarQube 8.1 - GitLab EE with client certificates

**URL:** <https://community.sonarsource.com/t/sonarqube-8-1-gitlab-ee-with-client-certificates/17944>\
**Category:** SonarQube Server / Community Build\
**Tags:** pull-request, gitlab, sonarqube\
**Created:** [December 19, 2019, 12:03am UTC](https://community.sonarsource.com/t/sonarqube-8-1-gitlab-ee-with-client-certificates/17944 "2019-12-19T00:03:19Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![aknowles](https://avatars.discourse-cdn.com/v4/letter/a/f0a364/32.png) [@aknowles](https://community.sonarsource.com/u/aknowles)\
**Post date:** [December 19, 2019, 12:03am UTC](https://community.sonarsource.com/t/sonarqube-8-1-gitlab-ee-with-client-certificates/17944/1 "2019-12-19T00:03:19Z")

</div>

Running SonarQube 8.1, setup PR settings with a valid auth token (with API capability). Our GitLab instance is secured with TLS client certificates; not sure if the SonarQube/GitLab magic is loading the TLS client certificates or not. Seeing this error:  
2019.12.18 23:49:49 INFO ce[AW8bauRvrFj\_XvzEy0Ws][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Webhooks | globalWebhooks=1 | projectWebhooks=0 | status=SUCCESS | time=15ms  
2019.12.18 23:49:50 ERROR ce[AW8bauRvrFj\_XvzEy0Ws][c.s.C.D.D.A] An exception was thrown during Pull request decoration : java.lang.IllegalStateException: Expected BEGIN\_ARRAY but was STRING at line 1 column 1 path $  
2019.12.18 23:49:50 ERROR ce[AW8bauRvrFj\_XvzEy0Ws][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Execution of task class com.sonarsource.C.D.a failed  
java.lang.IllegalStateException: java.lang.IllegalStateException: Expected BEGIN\_ARRAY but was STRING at line 1 column 1 path $  
at com.sonarsource.C.D.D.E.A(Unknown Source)  
at com.sonarsource.C.D.D.E.B(Unknown Source)  
at com.sonarsource.C.D.D.A.A(Unknown Source)  
at com.sonarsource.C.D.a.A(Unknown Source)  
at java.base/java.util.Optional.ifPresent(Optional.java:183)  
at com.sonarsource.C.D.a.B(Unknown Source)  
at com.sonarsource.C.D.a.A(Unknown Source)  
at org.sonar.ce.async.SynchronousAsyncExecution.addToQueue(SynchronousAsyncExecution.java:27)  
at com.sonarsource.C.D.a.A(Unknown Source)  
at java.base/java.util.Optional.ifPresent(Optional.java:183)  
at com.sonarsource.C.D.a.finished(Unknown Source)  
at org.sonar.ce.task.projectanalysis.api.posttask.PostProjectAnalysisTasksExecutor.executeTask(PostProjectAnalysisTasksExecutor.java:118)  
at org.sonar.ce.task.projectanalysis.api.posttask.PostProjectAnalysisTasksExecutor.finished(PostProjectAnalysisTasksExecutor.java:109)  
at org.sonar.ce.task.step.ComputationStepExecutor.executeListener(ComputationStepExecutor.java:91)  
at org.sonar.ce.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:63)  
at org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:81)  
at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.executeTask(CeWorkerImpl.java:209)  
at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.run(CeWorkerImpl.java:191)  
at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:158)  
at org.sonar.ce.taskprocessor.CeWorkerImpl$TrackRunningState.get(CeWorkerImpl.java:133)  
at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:85)  
at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:53)  
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)  
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)  
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)  
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)  
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)  
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)  
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)  
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)  
at java.base/java.lang.Thread.run(Thread.java:834)  
Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN\_ARRAY but was STRING at line 1 column 1 path $  
at com.google.gson.Gson.fromJson(Gson.java:939)  
at com.google.gson.Gson.fromJson(Gson.java:892)  
at com.google.gson.Gson.fromJson(Gson.java:841)  
at com.sonarsource.C.D.D.D.A(Unknown Source)  
… 31 common frames omitted  
Caused by: java.lang.IllegalStateException: Expected BEGIN\_ARRAY but was STRING at line 1 column 1 path $  
at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:350)  
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80)  
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)  
at com.google.gson.Gson.fromJson(Gson.java:927)  
… 34 common frames omitted  
2019.12.18 23:49:50 INFO ce[AW8bauRvrFj\_XvzEy0Ws][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Pull Request decoration | status=FAILED | time=99ms

---

<div class="post-metadata">

**Author:** ![pierreguillot](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/pierreguillot/32/46022_2.png) [@pierreguillot](https://community.sonarsource.com/u/pierreguillot)\
**Post date:** [December 19, 2019, 8:33am UTC](https://community.sonarsource.com/t/sonarqube-8-1-gitlab-ee-with-client-certificates/17944/2 "2019-12-19T08:33:34Z")

</div>

Hi, is it a custom SSL certificate ? There is no magic, if you use a self-generated certificate you have to add it in the keystore.
