Skip to content

[CI Failure Doctor] CI Failure Investigation - Run #35768 #15789

@github-actions

Description

@github-actions

🏥 CI Failure Investigation - Run #35768

Summary

  • js-integration-live-api's frontmatter_hash_github_api.test.cjs cross-language validation now reports two different hashes for .github/workflows/audit-workflows.md (JavaScript = 4d50f091b80261759bdbabc83490e5ed25d3ff07b5bf4a9c989d643f4c5a1a72, Go = bb5cbd9552401591e9476ae803f1736a88dca3f654f725dadffa5a7dbc31d639), so the job fails before it can finish.
  • canary_go then invokes ./scripts/compare-test-coverage.sh and aborts because it finds 2,763 tests that appear unexecuted (the integration artifact never shipped), which is a downstream symptom of the earlier failure.

Failure Details

Root Cause Analysis

Audit-workflows and its dependency graph changed in the latest commit, so the JavaScript frontmatter hasher now produces a new digest. The Go parser still logs the previous digest (bb5c...), so expect(jsHash).toBe(goHash) in frontmatter_hash_github_api.test.cjs fails immediately and prevents the job from emitting its test JSON. Because the integration JSON never reaches canary_go, the coverage check concludes that thousands of tests were missing and fails with ❌ FAILURE: Found 2763 tests that are NOT being executed in CI.

Failed Jobs and Errors

  • js-integration-live-apifrontmatter_hash_github_api.test.cjs > cross-language validation > should compute same hash as Go implementation when using file system: AssertionError: expected '4d50f091...' to be 'bb5cbd9552...'.
  • canary_go./scripts/compare-test-coverage.sh all-tests.txt executed-tests.txt surfaced that 2,763 tests were missing; the script first listed names such as TestAIReactionWithCommentEditFunctionality, TestAIReactionWorkflow, TestAPIKeyMaskingNoEmptyDeclaration, TestASCIILogoAlignment, etc., then failed with a broken pipe because no artifact existed.

Investigation Findings

  1. The JS side now returns a new audit hash while the Go side still reports the old digest, so the cross-language test blocks the workflow before the integration JSON artifact is uploaded.
  2. canary_go’s coverage script naively compares all-tests.txt against the collected JSON files; once the JSON for js-integration-live-api is missing, the script treats every test from that job as unexecuted and fails with a massive missing-test list.

Recommended Actions

  • Determine why Go and JavaScript disagree on the audited hash (likely due to the recent schema/safe-output changes) and bring both implementations back into sync so the cross-language validation passes again.
  • After the hash parity fix, rerun js-integration-live-api and canary_go so that the coverage job has the integration JSON it expects and can complete normally.
  • Consider hardening compare-test-coverage.sh to detect missing JSON artifacts and fail fast with a clear “artifact missing” message rather than reporting thousands of missing tests via broken pipe.

Prevention Strategies

  • Re-run the frontmatter_hash_github_api.test.cjs cross-language test whenever workflow or schema files are modified so you catch hash divergences before pushing.
  • If an integration job uploads JSON consumed by coverage, guard the downstream job against missing artifacts (skip or emit a targeted error) so a single upstream failure doesn’t flood the log with 2,763 missing-test entries.

AI Team Self-Improvement

When editing workflows or schema files, always recompute or log the current audit hash on both the Go and JS sides and compare them locally before merging; if they diverge, identify what changed in the dependency graph so the cross-language test can be updated in lockstep.

Historical Context

No open [CI Failure Doctor] issue matches this hash-mismatch pattern. The only recent coverage failure issue (#14811) was closed after resolving an artifact upload 403, so this is a new discrepancy between Go and JavaScript frontmatter hashing that must be addressed before rerunning the workflow.

AI generated by CI Failure Doctor

🩺 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 15, 2026, 9:22 PM UTC

Metadata

Metadata

Assignees

No one assigned

    Labels

    cookieIssue Monster Loves Cookies!

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions