CE: Failed to extract report after generating and uploading report to database

Hi, we recently upgraded from 10.3 to 2025.3.1 (with 2025.1.3 as a middle step). And one of our large mono-repo Java 8 maven project started to have below problem. Any help or suggestion is greatly appreciated!

Must-share information (formatted with Markdown):

  • which versions are you using (SonarQube Server / Community Build, Scanner, Plugin, and any relevant extension)
    SonarQube Server Enterprise Edition
    v2025.3.1 (109879)

  • how is SonarQube deployed: zip, Docker, Helm
    Helm
    Database: AWS Aurora PostgreSQL cluster with engine version 15.10

  • what are you trying to achieve
    Solve SonarQube error: Extract report | status=FAILED

  • what have you tried so far to achieve this
    Change log level to TRACE and check logs in ce.log and web.log

Do not share screenshots of logs – share the text itself (bonus points for being well-formatted)!
Error message from SonarQube website in Background Tasks

java.lang.IllegalStateException: Fail to select data of CE task 79584bcf-a5cc-4488-83ca-33b9dd0ca08a
	at org.sonar.db.ce.CeTaskInputDao.selectData(CeTaskInputDao.java:74)
	at org.sonar.ce.task.projectanalysis.step.ExtractReportStep.execute(ExtractReportStep.java:67)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeStep(ComputationStepExecutor.java:90)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeSteps(ComputationStepExecutor.java:81)
	at org.sonar.ce.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:68)
	at org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:75)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.executeTask(CeWorkerImpl.java:212)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.run(CeWorkerImpl.java:194)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:160)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$TrackRunningState.get(CeWorkerImpl.java:135)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:87)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:53)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:128)
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:399)
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)
	at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194)
	at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:137)
	at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
	at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
	at jdk.internal.reflect.GeneratedMethodAccessor591.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.sonar.db.profiling.InvocationUtils.invokeQuietly(InvocationUtils.java:34)
	at org.sonar.db.profiling.ProfilingPreparedStatementHandler.invoke(ProfilingPreparedStatementHandler.java:45)
	at jdk.proxy2/jdk.proxy2.$Proxy111.executeQuery(Unknown Source)
	at org.sonar.db.ce.CeTaskInputDao.selectData(CeTaskInputDao.java:67)
	... 20 more
Caused by: javax.net.ssl.SSLException: Tag mismatch!
	at java.base/sun.security.ssl.Alert.createSSLException(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(Unknown Source)
	at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:280)
	at org.postgresql.core.PGStream.receive(PGStream.java:660)
	at org.postgresql.core.PGStream.receiveTupleV3(PGStream.java:620)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2387)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
	... 33 more
Caused by: javax.crypto.AEADBadTagException: Tag mismatch!
	at java.base/com.sun.crypto.provider.GaloisCounterMode$GCMDecrypt.doFinal(Unknown Source)
	at java.base/com.sun.crypto.provider.GaloisCounterMode.engineDoFinal(Unknown Source)
	at java.base/javax.crypto.Cipher.doFinal(Unknown Source)
	at java.base/sun.security.ssl.SSLCipher$T13GcmReadCipherGenerator$GcmReadCipher.decrypt(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketInputRecord.decodeInputRecord(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketInputRecord.decode(Unknown Source)
	... 42 more

Close

Log from Sonar Scanner

[INFO] Analysis report generated in 1320ms, dir size=193.7 MB
[INFO] Analysis report compressed in 8925ms, zip size=89.1 MB
[INFO] Analysis report uploaded in 3916ms
[INFO] ANALYSIS SUCCESSFUL, you can find the results at: https://sonarqube.company.io/dashboard?id=xxx&branch=main
[INFO] Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
[INFO] More about the report processing at https://sonarqube.company.io/api/ce/task?id=79584bcf-a5cc-4488-83ca-33b9dd0ca08a
[INFO] Analysis total time: 6:11.276 s
[INFO] SonarScanner Engine completed successfully
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for xxx-xxx-parent main.20250729.xxx:
[INFO] 
[INFO] xxx-project ...................................... SKIPPED
[INFO] xxx-xxx-parent ................................. SUCCESS [06:19 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:20 min
[INFO] Finished at: 2025-07-29T06:07:02Z
[INFO] ------------------------------------------------------------------------

After going to https://sonarqube.company.io/api/ce/task?id=79584bcf-a5cc-4488-83ca-33b9dd0ca08a, I see

{"task":
  {
    "id":"79584bcf-a5cc-4488-83ca-33b9dd0ca08a",
    "type":"REPORT",
    "componentId":"AZJ4b2gt4al9bSk5K0zO",
    "componentKey":"xxx:xxx",
    "componentName":"xxx-xxx-parent",
    "componentQualifier":"TRK",
    "status":"FAILED",
    "submittedAt":"2025-07-29T06:07:01+0000",
    "submitterLogin":"admin",
    "startedAt":"2025-07-29T06:07:02+0000",
    "executedAt":"2025-07-29T06:07:07+0000",
    "executionTimeMs":5246,
    "errorMessage":"Fail to select data of CE task 79584bcf-a5cc-4488-83ca-33b9dd0ca08a",
    "hasScannerContext":false,
    "branch":"main",
    "branchType":"BRANCH",
    "warningCount":0,
    "warnings":[],
    "infoMessages":[]
  }
}

From ce.log

2025.07.29 06:07:07 WARN  ce[79584bcf-a5cc-4488-83ca-33b9dd0ca08a][c.z.h.p.ProxyConnection] HikariPool-1 - Connection org.postgresql.jdbc.PgConnection@c5a7721 marked as broken because of SQLSTATE(08006), ErrorCode(0)
2025.07.29 06:07:07 TRACE ce[79584bcf-a5cc-4488-83ca-33b9dd0ca08a][sql] time=5189ms | sql=SELECT input_data FROM ce_task_input WHERE task_uuid=? AND input_data IS NOT NULL | params=79584bcf-a5cc-4488-83ca-33b9dd0ca08a
2025.07.29 06:07:07 INFO  ce[79584bcf-a5cc-4488-83ca-33b9dd0ca08a][o.s.c.t.s.ComputationStepExecutor] Extract report | status=FAILED | time=5191ms
2025.07.29 06:07:07 ERROR ce[79584bcf-a5cc-4488-83ca-33b9dd0ca08a][o.s.c.t.s.ComputationStepExecutor] Execution of listener failed
2025.07.29 06:07:07 DEBUG ce[][c.z.h.pool.PoolBase] HikariPool-1 - Closing connection org.postgresql.jdbc.PgConnection@c5a7721: (connection is broken)
2025.07.29 06:07:07 TRACE ce[][o.p.c.QueryExecutorBase]  FE=> Terminate
2025.07.29 06:07:07 ERROR ce[79584bcf-a5cc-4488-83ca-33b9dd0ca08a][o.s.c.t.CeWorkerImpl] Failed to execute task 79584bcf-a5cc-4488-83ca-33b9dd0ca08a
2025.07.29 06:07:07 DEBUG ce[][c.z.h.pool.PoolBase] HikariPool-1 - Attempting to create/setup new connection (411a946b-e69e-4648-9634-758d337e1fcf)
2025.07.29 06:07:07 DEBUG ce[][o.postgresql.Driver] Connecting with URL: jdbc:postgresql://sonarqube-xxx.us-east-1.rds.amazonaws.com:5432/sonarqube?ssl=true&sslfactory=org.postgresql.ssl.jdbc4.LibPQFactory&sslmode=verify-full&sslrootcert=/etc/ssl/certs/amazon_root.pem
2025.07.29 06:07:07 DEBUG ce[][o.p.c.v.ConnectionFactoryImpl] Trying to establish a protocol version 3 connection to sonarqube-ci-f0a3-internal-vpc.endpoint.proxy-cpuvm4icd3xa.us-east-1.rds.amazonaws.com:5432

Hi,

Thanks for including that snippet of ce.log. (In fact, thanks in general for a thorough first post! :slight_smile: ) I think it probably tells the story:

I think it’s natural that the SELECT would fail if the connection to the DB is broken. You should probably investigate this on the DB end and maybe take a look at the network.

The docs on troubleshooting DB-related issues may also help.

 
Ann

1 Like

Hi Ann,

Thanks for your response and insights! We did some investigating and tweaking to our database but they didn’t work for us :pensive_face:.

The error log in database did not provide much info for us, it is just one line

•2025-07-30 22:31:18 UTC:10.0.4.215(25959):sonarqube@sonarqube:[607]:LOG: unexpected EOF on client connection with an open transaction

What we did so far:

The database itself has 4vCPU and 32GB of RAM. We customized it with following settings:

  • shared_buffers = 8GB
  • work_mem = 64MB
  • temp_buffers = 32MB
  • effective_cache_size = 24GB

We set JDBC connection following the doc you shared:

sonarqube@sonarqube-sonarqube-0:/opt/sonarqube/conf$ cat sonar.properties 
sonar.jdbc.idleTimeout=600000
sonar.jdbc.keepaliveTime=300000
sonar.jdbc.maxLifetime=1800000
sonar.jdbc.validationTimeout=5000

What we observed:

Our analysis report (in dev env) is around 90MB so we believe our database should be okay to handle it.

[INFO] Analysis report generated in 1271ms, dir size=196.0 MB
[INFO] Analysis report compressed in 9155ms, zip size=90.5 MB

Also, while we are experimenting this in our dev environment. We noticed that the same project can pass in our prod environment with

[INFO] Analysis report generated in 1465ms, dir size=193.1 MB
[INFO] Analysis report compressed in 8963ms, zip size=88.8 MB

Seems to me that 90MB is a hard line between success and failure.

Could you share more insights on how to solve this issue in the database side? Thank you so much! :grinning_face: :folded_hands:

Hi,

So on the DB side you see an unexpected EOF, and on the SonarQube side you see a broken connection… I think it’s time to look at the middle.

There is likely something on your network, e.g. a proxy, that’s blocking the analysis report submission. I’ve never seen it manifest with this particular error. And usually it hits when the analysis report is being submitted to the server, not when it’s being stored in the DB. Nonetheless, you should check with your network folks.

 
HTH,
Ann

1 Like

Hi Ann,

Thank you so much for your suggestion.

We are investigating the network connection between our SonarQube serve and database right now.

One thing we are tying is to get rid of the database proxy in front of the database, so that SonarQube will connect to the database directly. To do that, we updated our SONAR_JDBC_URL.

As you probably already anticipate, we got

Analyses suspended. The license is no longer valid because the Server ID has changed to: A1F24AA9-AYtushW_OJf-V-pRkHsm. Please set a new license.

Im wondering if there is a way for us to test without getting a new license?

Thank you!

Hi,

Oof!

Could you have your network people do some aliasing magic?

Otherwise, I’m afraid you will need a new license.

 
:frowning:
Ann

Hi Ann,

Thanks for your advise! We have resolved this issue now after investigating the network side of it.

To wrap this ticket up and for future references:
We use AWS as our cloud provider. Our network setup is SonarQube Server → RDS Proxy → RDS Instance.

The issue came from AWS RDS Proxy. Though is no way for AWS customers to view the instance metrics (like CPU usage, memory usage, network traffic, and etc…) of an RDS Proxy, I was told by AWS support team that our RDS Proxy got OOM while SonarQube server tries to process an analysis file > 90MB.

The solution to this is simple: AWS support team increased the instance size of our RDS Proxy from c5.Large to c5.2xLarge and problem solved. Note that AWS customers have no control on this, you can only get your RDS Proxy instance upgraded by creating an AWS support ticket.

Thanks Ann and SonarQube team for your help along the way (they provided us with a temporary license to test directly connecting SonarQube server to RDS Instance).

Best,
Junxi

1 Like