Skip to content

Dependabot silently fails to create PRs when a branch named "dependabot" exists #14193

@iainbeeston

Description

@iainbeeston

Package ecosystem: All (reproduced with github-actions and npm)

dependabot.yml content:

version: 2
updates:
  - package-ecosystem: github-actions
    directory: '/'

What you expected to see, versus what you actually saw:

When a repository has a branch named dependabot, the Dependabot updater runs successfully and reports PRs as "created" in its results table, but the PRs are never actually created. There is no error reported - the workflow run completes with a success status.

This happens because Dependabot creates branches under the dependabot/ namespace (e.g. dependabot/github_actions/actions/checkout-6), and Git cannot have both refs/heads/dependabot (a branch) and refs/heads/dependabot/... (a sub-path) at the same time due to a ref naming conflict.

Expected: Dependabot should fail with a warning message explaining that branch creation failed due to a ref conflict with an existing dependabot branch.

Actual: The run succeeds, the results table shows | created | ..., but no branches or PRs are created. This fails silently with no indication of the problem.

Example output from a successful run that created no actual PRs:

+------------------------------------------------------------------------+
|                  Changes to Dependabot Pull Requests                   |
+---------+--------------------------------------------------------------+
| created | google-github-actions/upload-cloud-storage ( from 2 to 3 )   |
| created | actions/setup-node ( from 4 to 6 )                           |
| created | google-github-actions/deploy-cloud-functions ( from 3 to 4 ) |
| created | google-github-actions/auth ( from 2 to 3 )                   |
| created | actions/checkout ( from 4 to 6 )                             |
+---------+--------------------------------------------------------------+

This affects all ecosystems, not just github-actions.

Images of the diff or a link to the PR, issue, or logs:

N/A (private repository), but the issue is reproducible by creating a branch named dependabot on any repository with Dependabot configured and dependencies that can be updated.

Smallest manifest that reproduces the issue:

Any repository with a .github/dependabot.yml config (the one above would work) and a branch named dependabot should reproduce this. The dependabot needs to exist.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions