mutation CI job fails at report upload — Gitea artifact backend returns 500 #62

Closed
opened 2026-07-01 07:31:19 +00:00 by not · 0 comments
Contributor

Symptom

The mutation Gitea Actions job fails even though the Stryker ratchet passes for every service (acl 95.24%, event-subscriber 100%, domain 97.73%). The failure is in the actions/upload-artifact@v3 steps that publish the HTML reports:

Create Artifact Container - Attempt 5 of 5 failed with error: Artifact service responded with 500
::error::Create Artifact Container failed: Artifact service responded with 500
❌  Failure - Main https://github.com/actions/upload-artifact@v3

All three uploads fail this way (both the finalize for the first and container-create for the rest). Because the steps use if: always(), the job fails. mutation is red on main too (e.g. run for the #59 merge), so this is pre-existing infra breakage, not caused by any one slice.

Root cause

The Gitea server's artifact storage backend responds 500 to the (correctly-pinned, non-GHES-guarded) v3 artifact protocol. This is server-side — distinct from gotchas.md §4 (the @v4 GHES guard). It is outside the repo's control to fix the server.

Fix

Make the report uploads best-effort (continue-on-error: true). The mutation gate is the Stryker ratchet (make mutation exit code), not the report upload; a broken artifact backend must not fail the gate. When the server's artifact storage is fixed, reports upload again with no workflow change. Document under gitea-actions-gotchas.md §4.

## Symptom The `mutation` Gitea Actions job fails even though the Stryker ratchet passes for every service (acl 95.24%, event-subscriber 100%, domain 97.73%). The failure is in the `actions/upload-artifact@v3` steps that publish the HTML reports: ``` Create Artifact Container - Attempt 5 of 5 failed with error: Artifact service responded with 500 ::error::Create Artifact Container failed: Artifact service responded with 500 ❌ Failure - Main https://github.com/actions/upload-artifact@v3 ``` All three uploads fail this way (both the finalize for the first and container-create for the rest). Because the steps use `if: always()`, the job fails. **`mutation` is red on `main` too** (e.g. run for the #59 merge), so this is pre-existing infra breakage, not caused by any one slice. ## Root cause The Gitea server's artifact storage backend responds `500` to the (correctly-pinned, non-GHES-guarded) v3 artifact protocol. This is server-side — distinct from gotchas.md §4 (the `@v4` GHES guard). It is outside the repo's control to fix the server. ## Fix Make the report uploads **best-effort** (`continue-on-error: true`). The mutation *gate* is the Stryker ratchet (`make mutation` exit code), not the report upload; a broken artifact backend must not fail the gate. When the server's artifact storage is fixed, reports upload again with no workflow change. Document under gitea-actions-gotchas.md §4.
not added the type:bugarea:infra labels 2026-07-01 07:31:20 +00:00
not closed this issue 2026-07-01 08:46:22 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eho/register-referentie#62