-
Notifications
You must be signed in to change notification settings - Fork 251
Description
🏥 CI Failure Investigation - Run #22186393086
Summary
Integration: CLI MCP Playwrightcompleted its Go tests but the finalactions/upload-artifactstep fortest-result-integration-CLI MCP Playwrightresponded withFailed to FinalizeArtifact: Received non-retryable error: Failed request: (403) Forbiddenafter the ZIP upload, so the JSON artifact never landed.canary_godepends on that artifact for its coverage check, soscripts/compare-test-coverage.shreported four Playwright tests as missing even though they ran and aborted with exit code 1.
Failure Details
- Run: 22186393086
- Commit: 1e15dd1
- Trigger: push
Root Cause Analysis
The integration job succeeded locally, but the artifact upload finalization step failed with HTTP 403, leaving test-result-integration-CLI MCP Playwright absent. When canary_go later downloaded artifacts, the Playwright JSON never appeared, so the coverage comparator saw all-tests.txt list those four tests but executed-tests.txt did not, causing it to exit 1 with Found 4 tests that are NOT being executed in CI.
Failed Jobs and Errors
- Integration: CLI MCP Playwright –
actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02fortest-result-integration-CLI MCP Playwrightfailed to finalize withFailed request: (403) Forbiddeneven though the ZIP was uploaded. - canary_go –
scripts/compare-test-coverage.sh all-tests.txt executed-tests.txtlistedTestMCPInspectPlaywrightIntegration,TestMCPInspectPlaywrightLiveIntegration,TestMCPInspectPlaywrightTools, andTestMCPInspectPlaywrightWithDocsServeras missing because the Playwright artifact was never available, and the script exited 1.
Investigation Findings
- The integration tests executed and printed
PASS, so the failure happens only when finalizing the artifact. - The missing artifact is what caused
canary_go’s coverage comparator to treat the already-ran Playwright tests as unexecuted. - This is the same symptom as issue [CI Failure Doctor] 🏥 CI Failure Investigation - Run #22185894213 #16846 but for a different integration suite, so the coverage check routinely misattributes artifact problems as missing test coverage.
Recommended Actions
- Re-run run #22186393086 to confirm whether the artifact upload 403 was transient; if it recurs the job should be retried or adjusted so the JSON artifact is committed before canary_go runs.
- Wrap the Playwright artifact upload step in retries or use a more resilient uploader so
actions/upload-artifactfinalization 403s cannot leave downstream jobs without JSON inputs. - Update
scripts/compare-test-coverage.sh(or the canary job) to detect missing artifacts explicitly before complaining about missing tests, and fail early with a clearer error message pointing to the artifact that is absent.
Prevention Strategies
- Add post-upload verification that
test-result-integration-CLI MCP Playwrightexists before running the coverage job, or add a guard that ensures canary_go waits for the artifact to be available. - Detect artifact-finalization failures and raise a dedicated alert so the job can be re-run without dumping dozens of missing-test names into the log.
AI Team Self-Improvement
When coverage comparisons report missing tests, first verify whether all integration artifacts were successfully uploaded—artifact finalization 403s are the real root cause more often than the tests themselves.
Historical Context
- Issue [CI Failure Doctor] 🏥 CI Failure Investigation - Run #22185894213 #16846 (Run #22185894213) documented the same artifact-finalization 403 leaving Workflow Permissions artifacts missing and causing the same
scripts/compare-test-coverage.shfailure.
🩺 Diagnosis provided by CI Failure Doctor
- expires on Feb 20, 2026, 2:39 PM UTC
🩺 Diagnosis provided by CI Failure Doctor
To install this workflow, run
gh aw add githubnext/agentics/workflows/ci-doctor.md@ea350161ad5dcc9624cf510f134c6a9e39a6f94d. View source at https://github.com/githubnext/agentics/tree/ea350161ad5dcc9624cf510f134c6a9e39a6f94d/workflows/ci-doctor.md.
- expires on Feb 20, 2026, 2:55 PM UTC