Visitar URL original
Silent CI failures due to enforced action restrictions with no prior notice · Issue #574 · apache/infrastructure-actions · GitHub
Skip to content

Silent CI failures due to enforced action restrictions with no prior notice #574

Description

@kevinjqliu

Continuation of #550 (closed; unable to reopen)

This issue focuses specifically on verified actions silently failing in GitHub workflows following the recently enforced policies.

Problem

Several GitHub workflows are now failing silently as a result of the new action restrictions. For example: https://github.com/apache/iceberg-python/actions/runs/23416549033

These failures are marked with "Status: Startup failure" and the following error:

The action pypa/cibuildwheel@v3.4.0 is not allowed in apache/iceberg-python because all actions
must be from a repository owned by your enterprise, created by GitHub, or match one of the
allowed patterns.

While it's great to see efforts to improve ASF's security posture, it would be really helpful to have some advance notice before changes like this are enforced, so projects aren't caught off guard.

Impact

  • CI silently drops checks due to enforcement — see #550 (comment) — with no indication that workflows have failed.
  • No notifications are sent when GitHub workflows stop working. The failed nightly run linked above was only discovered by manually checking the Actions tab. This project has CI job notifications configured, yet no alerts were received.

Solution

EDIT: Added a new github action (apache/infrastructure-actions/allowlist-check@main) to address this issue, #587

Activity

  1. kevinjqliu commented on Mar 23, 2026

    @kevinjqliu
    ContributorAuthor

    In #550, @dfoulks1 mentioned there was an email sent. I couldn't find any related emails

  2. clambertus commented on Mar 23, 2026

    @clambertus
    Contributor
  3. kevinjqliu commented on Mar 23, 2026

    @kevinjqliu
    ContributorAuthor

    @clambertus thats the trivy incident. I see github actions like pypa/cibuildwheel and astral-sh/setup-uv suddenly failing.

    Is it due to this? I didnt understand what "verified creator" means

    ASF Infra and ASF Security agreed to disable all previously allowed "verified creator" actions while the incident is being investigated

  4. kevinjqliu commented on Mar 23, 2026

    @kevinjqliu
    ContributorAuthor
  5. potiuk commented on Mar 23, 2026

    @potiuk
    Member

    Known issue with GitHub Actions - lack of jobs causes "green" PR by definition. But adding "context" in protected_branch definition (required status check for the PR to be mergable) solves the issue.

  6. potiuk commented on Mar 24, 2026

    @potiuk
    Member

    I thought a bit - I think we should add some incentive for people who use pinning properly and prevent those sillent errors to happen. That woudl be a carrot instead of stick:

    • Currently when we do Dependabot PR reviews - we need to do that manually anywayth
    • I created a small CLI tool that makes it super easy Add action build verification script #561
    • Similar tool could probably easily use gh APIs tot go through apache repositories using actions and see if the action is used in an of the repositories and make a notification after PRs are merged with new versions, notifying all the repos that use those - even creating issues in their repos that they should upgrade those particular actions
    • Similarly a week or few days before scheduler removal, we could open the project's that still have those versions used with notification that the WF will stop working (inclding which workflows) - another issue could be created.

    Then it would be enitrely up to the PMC to react to those.

    With Claude /AI - it can be entirely Clauded in a rather short time (hours) and maintenance of it will be near 0 (you can always ask Claude to fix any errors you experience in minutes). I would do it - but I am not sure if such contributions are really useful - the one for actions review I did in 2 hours and reviewed/closed > 10 prs - but it might take much longer for @raboof @dfoulks1 and others who review the actions to accept it a nd start using it

    This is what we learn from current AI driven development - that new tools like that can be created very quickly by those who started using them - and quickly, but it still takes stakeholders a lot of time to accept that such tooling can now be created in almost no time.

    My friend @kaxil wrote about it in this post - https://kaxil.substack.com/p/i-havent-written-a-line-of-code-in - and yes- what I see is exactly that - people need to get used to the fact that you can create such tools 10x faster now.

    So I do not want to go ahead of those decisions even more - But - at some point in time I am happy to contribute it here if there is an appetite for it and willingness to accept such generated code.

  7. kevinjqliu commented on Mar 25, 2026

    @kevinjqliu
    ContributorAuthor

    Known issue with GitHub Actions - lack of jobs causes "green" PR by definition. But adding "context" in protected_branch definition (required status check for the PR to be mergable) solves the issue.

    Thanks for the hint here @potiuk . I took a look at this solution. It involves very carefully specifying the exact name of each CI that should be "green" (which honestly should be all of them!). There are a lot of caveats and gotchas according to Github and ASF.

    I found another potential solution/workaround. I added a runtime check in CI, comparing all the github actions against the approved_patterns.yml file. Heres the code: apache/iceberg@f6c8e58
    This gives the failure signal we're looking for in the CI (and PR) (https://github.com/apache/iceberg/actions/runs/23525855725/job/68479029725?pr=15749). The "Checks" tab still shows a small black status for the silent failure, but this check will loudly tell everyone what the problem is.

    Might be a good idea to turn this into an ASF github action that all projects can pull. WDYT?

    EDIT: heres a first draft of what the github action would look like, #587

  8. potiuk commented on Mar 25, 2026

    @potiuk
    Member

    EDIT: heres a first draft of what the github action would look like, #587

    Fantastic idea !!! looks really good :)

  9. kevinjqliu commented on Mar 25, 2026

    @kevinjqliu
    ContributorAuthor

    thanks @potiuk could you give it a review when you get a chance?

  10. raboof commented on Mar 26, 2026

    @raboof
    Member

    Known issue with GitHub Actions - lack of jobs causes "green" PR by definition.

    Indeed. While it's indeed well-known, do you know if this is actually tracked somewhere?

    But adding "context" in protected_branch definition (required status check for the PR to be mergable) solves the issue.

    Right, but many projects will not do this (either because of ignorance or because of a legitimate desire to have some jobs that are ran but not block the merge. Also that doesn't help for workflows that are triggered some other way, such as scheduled ones.

    I like #587, but that's only for projects that are already aware. I wonder if we should also have a way to 'proactively' notify projects. One way might be to include this check in https://github.com/apache/infrastructure-gha-workflow-scanner - though we'd want to make sure it doesn't get too noisy. Also perhaps we could create some kind of report somewhere?

  11. potiuk commented on Mar 28, 2026

    @potiuk
    Member

    Indeed. While it's indeed well-known, do you know if this is actually tracked somewhere?

    I tracked it for about 2 years in a personal ticket, but It seems to be an architectural issue and will not be fixed and I closed it.
    I am not sure if anything else can be done on GH side to fix it. So this issue is basically tracking it on our side and maybe we will find some solutions to that.

    Right, but many projects will not do this (either because of ignorance or because of a legitimate desire to have some jobs that are ran but not block the merge. Also that doesn't help for workflows that are triggered some other way, such as scheduled ones.

    Correct - that might not be a viable path for many. Unfortunately - I do not have any other idea how to deal with it other than halping to develop tools (or contribute to them) that might be ok for infra to use long term. As volunteers we migh help to create solutions - but regularly elmaintaining them when we have vacations, sudden spikes of other work is quite infeasible. I've learned that proposing things without earlier buy-in from infra and then trying to push it to them is a bad idea (I anticipated htat in my comment above as well. But if there is an infra buy-in and agreement on the kind of notification schema that we should do, I am happy to help to add such features.

    I like #587, but that's only for projects that are already aware. I wonder if we should also have a way to 'proactively' notify projects. One way might be to include this check in https://github.com/apache/infrastructure-gha-workflow-scanner - though we'd want to make sure it doesn't get too noisy. Also perhaps we could create some kind of report somewhere?

    That's basically what I proposed in #574 (comment) - (if it can be integrated in the scanner, then that would be great).

    But I believe the action proposed by @kevinjqliu is way better solution.

    The https://github.com/apache/infrastructure-gha-workflow-scanner might be used to check for PRESENCE of this action - not for action hashes. This would be way, way, way better - because you would just notify about lack of this action - and then once added, the action would automatically notify the maintainers about any issues with their action hashes. I think it's way more noisy, way less invasive and also it opens up the nice capability that we could check for MORE things - once we make everyone in ASF using GH actions to add this action.

    I think this is a brilliant way of solving the noise problem. Eventially the https://github.com/apache/infrastructure-gha-workflow-scanner could ONLY check for presence of the action and be even very annoying about it - making it essentially a requirement for all ASF projects. And then the action called from every repo could do all kinds of check we want - for example zizmor check for security etc. This is I think fantastic way for infra (if they would want to be active in this area) force whatever checks they do and they will run not out-of-bound - but whenever PRs or "main" builds happen in the ASF repos - making them actually owners to solve their failing builds, rather than responding to email notifications.

    Of course that also bears certain responsibility on whoever is the owner of such action - to follow up and resolve any problems it might cause - answer questions of the PMCs and so on, but this is a very elegant problem to solve INFRA "basic checks" issue that @killerbees mentioned in slack today. Such action might very cleary define what the INFRA enforces on every repo and make it part of INFRA very concrete, automatically enforcable set of expectations they have.

  12. dave2wave commented on Apr 5, 2026

    @dave2wave
    Member

    For the technical solution #606 and #482 discuss approaches for handling this problem by periodic checking of your workflows and actions against the currently allowed actions.

  13. kevinjqliu commented on Apr 16, 2026

    @kevinjqliu
    ContributorAuthor

    This is resolved by adding the apache/infrastructure-actions/allowlist-check action project's CI.
    For example, in the apache/iceberg repo: https://github.com/apache/iceberg/blob/dde712ec9ed6c9d28183ee4615d50f97b246af5d/.github/workflows/asf-allowlist-check.yml

    I tihnk the final step here is to add this to asf infra documentation somewhere as best practice recommendation

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

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions