Skip to content

Eclipse ECA API returns 400

Summary

The Eclipse ECA API for validating incoming commits to the JGit and EGit projects stopped working at 2025-07-03T21:03:18.301Z and is still failing.

Steps to reproduce

curl -v -X POST -H "Content-Type: application/json" --data '
{
  "provider": "gerrit",
  "repoUrl": "eclipse-jgit/jgit",
  "strictMode": true,
  "estimatedLoc": 0,
  "commits": [
    {
      "hash": "f96b7fcdf89bd2d12f8174393aebbd1026b55516",
      "body": "[DO NOT MERGE] Restore WORKSPACE and Bazel 7.6.1",
      "subject": [DO NOT MERGE] Restore WORKSPACE and Bazel 7.6.1,
      "author": {
        "name": "Luca Milanesio",
        "mail": "luca.milanesio@gmail.com"
      },
      "committer": {
        "name": "Luca Milanesio",
        "mail": "luca.milanesio@gmail.com"
      },
      "last_modification_date": "2019-08-24T14:15:22Z",
      "head": true,
      "parents": [
        "7d33c6db5cfd5993d2417b00bb320ebf2cd9bbf6"
      ]
    }
  ]
}' https://api.eclipse.org/git/eca

What is the current bug behavior?

* Connected to api.eclipse.org (198.41.30.211) port 443 (#0)
* ALPN: offers h2
* ALPN: offers http/1.1
*  CAfile: /opt/local/share/curl/curl-ca-bundle.crt
*  CApath: none
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS header, Finished (20):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS header, Finished (20):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN: server accepted h2
* Server certificate:
*  subject: C=CA; ST=Ontario; L=Ottawa; O=Eclipse.org Foundation, Inc.; CN=*.eclipse.org
*  start date: Jan  6 00:00:00 2025 GMT
*  expire date: Feb  6 23:59:59 2026 GMT
*  subjectAltName: host "api.eclipse.org" matched cert's "*.eclipse.org"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  SSL certificate verify ok.
* Using HTTP2, server supports multiplexing
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* h2h3 [:method: POST]
* h2h3 [:path: /git/eca]
* h2h3 [:scheme: https]
* h2h3 [:authority: api.eclipse.org]
* h2h3 [user-agent: curl/7.85.0]
* h2h3 [accept: */*]
* h2h3 [content-type: application/json]
* h2h3 [content-length: 692]
* Using Stream ID: 1 (easy handle 0x7fc290009600)
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
> POST /git/eca HTTP/2
> Host: api.eclipse.org
> user-agent: curl/7.85.0
> accept: */*
> content-type: application/json
> content-length: 692
>
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* We are completely uploaded and fine
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
< HTTP/2 400
< server: nginx
< date: Fri, 04 Jul 2025 07:17:33 GMT
< content-length: 0
< content-encoding: identity
<
* Connection #0 to host api.eclipse.org left intact

What is the expected correct behavior?

The API should return the validation status of the contributions to the JGit project. In case of errors should return a JSON with the error description.

Relevant logs and/or screenshots

n/a

Priority

  • Urgent
  • High
  • Medium
  • Low

Severity

  • Blocker
  • Major
  • Normal
  • Low

Impact

This issue currently blocks all the contributions to the JGit and EGit projects.