Skip to content

CI cannot write to the Apache Develocity remote build cache (403 Forbidden) #16346

Description

@clayburn

Issue description

CI builds cannot write to the Apache Develocity remote build cache. Every store attempt is rejected with 403: Forbidden, so the remote cache is never populated, never serves a hit, and delivers zero avoidance savings across the whole project.

This is a leftover from the migration to https://develocity.apache.org: the ASF instance requires each project to be explicitly onboarded for remote build caching (a dedicated CI user plus a scoped access key). Grails publishes build scans successfully — that part of the migration worked — but the cache credentials were never provisioned, so the write path is unauthorized.

Evidence

Example scan: https://develocity.apache.org/s/azwtwdv4p6cxa/performance/build-cache#remote-cache-failure-0-0
(Groovy Snapshot Canary Build, branch 8.1.x, Gradle 9.7.1, Develocity plugin 4.5.0)

Console output from that build:

Could not store entry d3ec921920106a66711c237b4c6c1519 in remote build cache
java.lang.RuntimeException: Storing entry at 'https://develocity.apache.org/cache/d3ec921920106a66711c237b4c6c1519' response status 403: Forbidden
	at org.gradle.caching.internal.controller.service.BaseRemoteBuildCacheServiceHandle.storeInner(BaseRemoteBuildCacheServiceHandle.java:150)
	...

The failures are not fatal, so nothing turns the CI build red — but after the first errors Gradle marks the remote cache disabledDueToError for the remainder of the build.

Proposed resolution

  1. ASF Infra ticket. Open a ticket with ASF Infra asking them to onboard apache/grails-core for Develocity remote build caching. They will create a dedicated CI user for Grails and issue an access key scoped to that account, to be exposed only to CI builds.
  2. Repository secret. Ensure the correct GitHub Actions secret is mapped to the DEVELOCITY_ACCESS_KEY env var.
  3. Build configuration. Set the Develocity project ID in the build so cache entries are scoped correctly. Happy to raise the PR for this once the key is provisioned — it is a small change to the develocity { } blocks.

Raised at the request of James Fredley. cc @jdaugherty @matrei

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions