Repository navigation
build(workflows): tolerate metadata-action YAML parse failures in process_metadata.yml - #14907
Draft
Planeshifter wants to merge 1 commit into
Draft
Planeshifter wants to merge 1 commit into
Planeshifter wants to merge 1 commit into
Conversation
…process_metadata.yml` The job `Process Metadata` failed 4 times on 2026-09-02 with `YAMLException: end of the stream or a document separator is expected (2:1)` thrown by the external `stdlib-js/metadata-action`. Root cause: the action parses YAML front-matter out of raw commit/comment text, and an AI-generated PR review comment containing a Markdown table starting with a bare `|` breaks its `js-yaml` parser. The bug lives in that external action's source, which this repository does not control. This commit adds `continue-on-error: true` to the "Extract metadata" step, mirroring the existing pattern used for the "Exit if user does not have write access" step in the same file, so a parse failure no longer fails the whole job. The "Send tweets" and "Check metadata for workflow dispatch directives" steps are additionally gated on `steps.extract-metadata.outcome == 'success'`, matching the existing two-part pattern in `publish_coverage_pr.yml`, so neither step runs against empty/missing metadata when extraction fails. Ref: https://github.com/stdlib-js/stdlib/actions/runs/33633428450 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017gXw4miWt7onhg4K8YQEJL
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This pull request:
process_metadata.ymlso a YAML parse failure instdlib-js/metadata-actionno longer fails the "Process Metadata" jobcontinue-on-error: trueto the "Extract metadata" step, matching the existing pattern on the "Exit if user does not have write access" step in the same filesteps.extract-metadata.outcome == 'success', matching thecontinue-on-error+outcomegate pattern already used inpublish_coverage_pr.yml, so they no-op instead of running on empty or garbage metadataRelated Issues
This pull request does not have any related issues.
Questions
No.
Other
Root cause:
process_metadata.ymlran 4 times on 2026-09-02 (runs 33633418814, 33633419895, 33633423946, 33633428450), all within the same minute, all triggered byissue_commentevents on 4 different PRs, and all failed at the "Extract metadata" step with:stdlib-js/metadata-actionparses YAML front-matter out of raw commit-message/comment text. An AI-generated PR review comment containing a Markdown table with a bare|(empty cell) on its own line breaks the action'sjs-yamlparser. The action is pinned by commit SHA in a separate repository and cannot be patched here, so the fix is workflow-side: tolerate the failure and skip the steps that depend on its output.Validation: no automated test suite covers GitHub Actions YAML. Ran
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/process_metadata.yml'))"to confirm the file is syntactically valid.Three independent reviews were run against the diff:
continue-on-erroronly, no outcome gates) gotrequest_changesbecause the downstream steps could then run on empty metadata; the revision adding the two outcome gates gotapprove.approve. Diff is 3 hunks in 1 file. Happy path is unchanged — the outcome gate is a no-op when extraction succeeds. Previously-unreachable-with-empty-metadata paths are now explicitly closed.approve.${{ }}-wrapped multi-conditionif:matches the file's existing convention (the "Dispatch workflow with inputs" step already uses this form). Comment style, indentation, and YAML re-checked.One non-blocking style note:
publish_coverage_pr.ymluses unwrappedif:for single-condition gates, this PR uses${{ }}-wrapped multi-condition gates. Both are valid, this file already mixes both forms. No change made.Branch:
philipp/ci-fix-process-metadata-yaml-parse-2026-09-02, commit67ee1d83f52f69d3eb8523498f2cab599826ca6b.Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This PR was authored by Claude Code running as an unattended scheduled routine that investigates CI failures on
develop.@stdlib-js/reviewers
🤖 Generated with Claude Code
https://claude.ai/code/session_017gXw4miWt7onhg4K8YQEJL
Generated by Claude Code