internalChecksFilter: "strict" inconsistently bypassed: branches/PRs created for releases that haven't passed minimumReleaseAge
#42260
Replies: 1 comment
-
|
We're hitting the same issue with the npm manager (not just Setup// .github/renovate.json5
{
extends: ["config:recommended"],
schedule: ["after 6pm and before 11pm on tuesday"],
automerge: true,
platformAutomerge: true,
minimumReleaseAge: "4 days",
// internalChecksFilter not set (default "strict")
}pnpm-workspace.yaml also has its own supply-chain gate: minimumReleaseAge: 4320 # 3 days, in minutesWhat happened
With Why PR #38720's fix didn't prevent thisWe traced the code path through the branch worker (analysis done with AI assistance — see disclaimer at the bottom). 1. Orphan branch survives because
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
How are you running Renovate?
Self-hosted Renovate CLI
Which platform you running Renovate on?
GitHub.com
Which version of Renovate are you using?
43.101.0
Please tell us more about your question or problem
Current behavior
Renovate
43.101.0created branches and PRs for two GitHub Actions major updates that had not passed theminimumReleaseAgeof 29 days, despiteinternalChecksFilterbeing at its default"strict"value. In the same run, other packages were correctly blocked by the filter.Expected behavior
With the default
internalChecksFilter: "strict", Renovate should not create branches for updates whereminimumReleaseAgehas not been met. All packages should be treated consistently within the same run.Affected packages (bypassed the filter)
astral-sh/setup-uv: major (v7.4.0→v8.0.0), released 2026-03-29, ~1 day old at run time,minimumReleaseAge= 29 dayscrazy-max/ghaction-dump-context: major (v2.3.0→v3.0.0), released 2026-03-27, ~3 days old at run time,minimumReleaseAge= 29 daysCorrectly blocked package (same run, same config, same manager)
renovatebot/github-action: minor (v46.1.4→v46.1.7), released 2026-03-30, ~15 hours old at run time,minimumReleaseAge= 11 daysAll three are GitHub Actions managed by the
github-actionsmanager with thegithub-tagsdatasource. The blocked one was actually younger than the two that bypassed the filter.Renovate config
Here is my
renovate.json5at the time of the runs: you can check that there is nointernalChecksFilteroverride (relies on the default"strict"). The relevantminimumReleaseAgerules are:Workflow runs with evidence
Run 1 (
infolevel)This is the run that created the PRs it should have blocked: https://github.com/kdeldycke/repomatic/actions/runs/23758202043/job/69218453562
Branch created (branch=renovate/astral-sh-setup-uv-8.x)PR created (branch=renovate/astral-sh-setup-uv-8.x)Branch created (branch=renovate/crazy-max-ghaction-dump-context-3.x)PR created (branch=renovate/crazy-max-ghaction-dump-context-3.x)Resulting PRs:
astral-sh/setup-uvaction tov8.0.0kdeldycke/repomatic#2472 (setup-uvv8.0.0, closed manually during investigation)crazy-max/ghaction-dump-contextaction tov3.0.0kdeldycke/repomatic#2473 (ghaction-dump-contextv3.0.0, merged before I noticed the issue)Run 2 (
debuglevel)This run proves the filter works for other packages but not these specific ones: https://github.com/kdeldycke/repomatic/actions/runs/23760199977/job/69225374124
Correctly blocked:
Branch renovate/codecov-cli-11.x creation is disabled because internalChecksFilter was not metBranch renovate/renovatebot-github-action-46.x creation is disabled because internalChecksFilter was not metNot blocked (already created by Run 1):
branchExists=true (branch=renovate/astral-sh-setup-uv-8.x)Update has not passed minimum release age (branch=renovate/astral-sh-setup-uv-8.x)with"timeElapsed": 178125404(~2 days) vs"minimumReleaseAge": "29 days"Updating renovate/stability-days status check state to yellow (branch=renovate/astral-sh-setup-uv-8.x), so Renovate knows the age threshold isn't met, but the PR already existsContext
This was discussed in #38324, which was marked as fixed by #38720 (Renovate
41.165.2). However that PR only fixed branch updates whenpendingChecks=true. The issue here is thatinternalChecksFilter: "strict"failed to prevent the initial branch creation for some packages while correctly blocking others in the same run.Beta Was this translation helpful? Give feedback.
All reactions