coding agent — develocity-failure-handler
develocity MCP
> /develocity-failure-handler https://develocity.example.com/s/m3r8vq2kd7h1t
Phase 1 / 5: Resolve Scan — the Build Scan came with the ask
Phase 2 / 5: Triage — checking the failure against every build of this project in the last seven days
develocity — get_build (MCP)(buildId: m3r8vq2kd7h1t, models: tests)
subject: TlsHandshakeIntegrationTest.clientAuthHandshake() — 702 passed, 3 failed, 0 flaky · CertificateExpiredException
develocity — list_failure_groups (MCP)(project: payments-service, window: 7d)
matched group: 212 builds across 9 branches, 11 CI jobs and 14 developer machines — first seen Oct 1, 00:14 UTC, still failing on main
nothing sets the failing builds apart — not a branch, a host, or a user → systemic
Phase 3 / 5: Diagnose — Read(core/src/testFixtures/resources/tls/test-ca.pem)
Read 1 certificate — Not After: Oct 1 00:00:00 2026 GMT · issuer of every fixture certificate the TLS tests load
Root cause — the test CA certificate in the TLS fixtures expired on 1 October; from that moment every handshake test fails on every branch, whatever the branch changed.
Phase 4 / 5: Respond
Root cause analysis — code-fixable, systemic: 212 builds on 9 branches, CI and local — nobody's change. One fix at the source; for everyone else it is systemic, not yours.
Handling this failure: I will open a pull request against example/payments-service.
Phase 5 / 5: Handle — reproducing the expired handshake, regenerating the fixture CA, and verifying
Bash(./gradlew :core:test --tests '*Tls*')
18 tests, 3 failed — CertificateExpiredException at TlsTestCerts.java:41
Bash(openssl req -x509 -newkey ec -days 3650 … -out core/src/testFixtures/resources/tls/test-ca.pem)
- Not After: Oct 1 00:00:00 2026 GMT
+ Not After: Oct 17 00:00:00 2036 GMT
Bash(./gradlew :core:test — Tls, Handshake, ClientAuth, Keystore)
417 tests, 0 failures
Fixed in example/payments-service#491 — verified: reproduced before the change, gone after.
One pull request: 212 builds a week stop failing, and no other branch or agent investigates this again.
>▸▸ accept edits on