<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-red-x-that-says-what-it-saw-lpinxseih" -->

---
title: The Red X that Says What it Saw | daily.dev
description: Gradle&#x27;s CI bot now posts failure summaries directly on gradle/gradle pull requests when a check goes red. Using Develocity&#x27;s failure grouping, the bot reads...
canonical: https://daily.dev/posts/the-red-x-that-says-what-it-saw-lpinxseih
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The Red X that Says What it Saw | daily.dev
og:description: Gradle&#x27;s CI bot now posts failure summaries directly on gradle/gradle pull requests when a check goes red. Using Develocity&#x27;s failure grouping, the bot reads...
og:url: https://daily.dev/posts/the-red-x-that-says-what-it-saw-lpinxseih
og:image: https://api.daily.dev/og/posts/lpiNxSEih.png
og:image:alt: The Red X that Says What it Saw
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The Red X that Says What it Saw

**[Gradle Blog](https://daily.dev/sources/gradle-blog)** · 6 min read · 0 upvotes · 0 comments

## Summary

Gradle's CI bot now posts failure summaries directly on gradle/gradle pull requests when a check goes red. Using Develocity's failure grouping, the bot reads grouped failures tied to a commit, drills into a representative build to recover human-readable test names, and posts a concise comment with a direct link to the relevant Build Scan. The feature was deployed without touching any workflow files in the main repository, runs in the existing bot service, and fails silently when data is unavailable. A real example shows how a single flaky test annotation was caught — a test marked 'to be fixed' unexpectedly passed, and the summary surfaced that immediately. Cross-build baseline comparison (detecting whether a failure is new vs. pre-existing on main) is not yet implemented but is described as the next planned feature.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.gradle.org/dogfooding-failure-summaries>

## Questions this post answers

### How does Gradle's CI bot post failure summaries on pull requests using Develocity?

The bot queries Develocity for failure groups tied to the commit, then drills one level deeper into a representative build's failures to recover the human-readable name of the failing test or task. It posts a short comment on the pull request with the grouped failure name and a direct deep link into the Build Scan, where the full assertion and stack trace are waiting. The feature runs in the existing bot service with no changes to workflow files in the main repository.

_Teams wiring up similar CI feedback loops track Develocity and Gradle build tooling developments on daily.dev._

### What is Develocity failure grouping and how does it reduce noise in large Gradle builds?

Develocity failure grouping clusters failures that are, to a human, the same failure across all builds in a run rather than reporting them one at a time. A single gradle/gradle check fans out into dozens of builds across operating systems and test buckets; grouping collapses the same failure seen across many builds into one line. Without it, a single root-cause failure could appear as dozens of separate stack traces to scroll past.

_Developers managing large multi-build CI pipelines find coverage of Gradle and build tooling on daily.dev._

## Similar posts on daily.dev

- [How to Tame Your Flaky Tests in TeamCity](https://daily.dev/posts/how-to-tame-your-flaky-tests-in-teamcity-srhpeck9w) · JetBrains · 0 upvotes · 0 comments
- [Fix flaky tests with AI within Bitbucket](https://daily.dev/posts/fix-flaky-tests-with-ai-within-bitbucket-xx1o26euv) · Atlassian · 0 upvotes · 0 comments
- [Turning CI Noise into Insights: Our Build Monitoring Architecture](https://daily.dev/posts/turning-ci-noise-into-insights-our-build-monitoring-architecture-2lovmvbpw) · Halodoc · 0 upvotes · 0 comments
- [Test reporting in Microsoft.Testing.Platform: from red build to root cause](https://daily.dev/posts/test-reporting-in-microsoft-testing-platform-from-red-build-to-root-cause-8w2taxpcg) · .NET Blog · 0 upvotes · 0 comments
- [From a long list to a clear signal: baseline-driven acces...](https://daily.dev/posts/from-a-long-list-to-a-clear-signal-baseline-driven-acces--elkvdr4g1) · Tech at trivago · 0 upvotes · 0 comments

---

Tags: [#cicd](https://daily.dev/tags/cicd), [#gradle](https://daily.dev/tags/gradle)

[View this post on daily.dev](https://daily.dev/posts/the-red-x-that-says-what-it-saw-lpinxseih)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The Red X that Says What it Saw","url":"https://daily.dev/posts/the-red-x-that-says-what-it-saw-lpinxseih","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-red-x-that-says-what-it-saw-lpinxseih"},"datePublished":"2026-08-11T18:11:42.833Z","dateModified":"2026-08-11T18:12:09.720Z","description":"Gradle's CI bot now posts failure summaries directly on gradle/gradle pull requests when a check goes red. Using Develocity's failure grouping, the bot reads...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/11c6b1c321e872af3cddc261bcfb087d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/11c6b1c321e872af3cddc261bcfb087d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Gradle Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Gradle Blog","logo":"https://media.daily.dev/image/upload/s--Mtc4Cp4O--/f_auto,q_auto/v1773648768/logos/gradle-blog?_a=BAMAMiiu0","url":"https://daily.dev/sources/gradle-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-red-x-that-says-what-it-saw-lpinxseih","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"cicd,gradle","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Gradle Blog","item":"https://daily.dev/sources/gradle-blog"},{"@type":"ListItem","position":3,"name":"The Red X that Says What it Saw"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/the-red-x-that-says-what-it-saw-lpinxseih#faq","mainEntity":[{"@type":"Question","name":"How does Gradle's CI bot post failure summaries on pull requests using Develocity?","acceptedAnswer":{"@type":"Answer","text":"The bot queries Develocity for failure groups tied to the commit, then drills one level deeper into a representative build's failures to recover the human-readable name of the failing test or task. It posts a short comment on the pull request with the grouped failure name and a direct deep link into the Build Scan, where the full assertion and stack trace are waiting. The feature runs in the existing bot service with no changes to workflow files in the main repository. Teams wiring up similar CI feedback loops track Develocity and Gradle build tooling developments on daily.dev."}},{"@type":"Question","name":"What is Develocity failure grouping and how does it reduce noise in large Gradle builds?","acceptedAnswer":{"@type":"Answer","text":"Develocity failure grouping clusters failures that are, to a human, the same failure across all builds in a run rather than reporting them one at a time. A single gradle/gradle check fans out into dozens of builds across operating systems and test buckets; grouping collapses the same failure seen across many builds into one line. Without it, a single root-cause failure could appear as dozens of separate stack traces to scroll past. Developers managing large multi-build CI pipelines find coverage of Gradle and build tooling on daily.dev."}}]}
```

