GitHub Merge Queue merge_group Trigger: Fix Checks That Never Start (2026 Guide)

Published February 16, 2026 · 10 min read

Your rollback PR is approved, but merge queue checks never move beyond Pending. No failures, no logs, no progress. This pattern is usually not a flaky runner problem. It is often a workflow trigger mismatch.

This guide is a practical runbook for fixing merge_group trigger gaps in GitHub Actions so required checks actually start in merge queue context.

⚙ Quick links: Merge Queue Rollback Required Checks Guide · Merge Queue Rollback Stuck Guide · Merge Queue Pending Checks Guide · Saturation vs Starvation Decision Guide · Checks Keep Restarting Guide · Flaky Required Checks Guide · GitHub Actions CI/CD Complete Guide · Protected Branch Revert + Merge Queue · GitHub Revert Pull Request Guide · Git Commands Cheat Sheet

Table of contents

  1. Quick diagnosis table
  2. Why merge_group triggers are required
  3. Workflow patterns that break queue checks
  4. 5-minute triage checklist
  5. Queue-safe remediation workflow
  6. YAML and CLI recipes
  7. Incident rollout checklist
  8. FAQ

1. Quick diagnosis table

Symptom Do this first Why it works
Required check is pending forever with no run logs Add merge_group to workflow on: triggers Merge queue runs checks in merge-group context, not plain PR context.
PR checks are green but queue checks never start Audit job-level if: conditions for event-name filters Hard-coded pull_request guards silently skip merge-group runs.
Queue entry restarts and pending repeats Rebase rollback branch to latest protected tip, then requeue Fresh snapshots reduce invalidated queue runs.
Checks run but branch protection still shows pending Verify required-check names match actual workflow job names Name mismatch can leave policy checks unresolved.
Incident pressure escalating Apply minimal trigger fix, keep protections on Fastest safe path without creating a second incident.
Safe default: when queue checks never start, assume trigger wiring before runner instability. Trigger defects are faster to verify and fix.

2. Why merge_group triggers are required

GitHub merge queue validates a queue-generated merge candidate. That candidate emits a merge_group event. If required workflows only subscribe to pull_request, branch protection sees required checks but no corresponding runs in queue context.

Result: rollback PR is approved, but merge queue remains blocked with pending checks forever.

Common anti-pattern: emergency bypass because checks look stuck. In most cases, adding the missing merge_group trigger is the correct low-risk fix.

3. Workflow patterns that break queue checks

Pattern A: Trigger listens only to pull_request

on:
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm test

Works for PR pages, but queue-required checks never start.

Pattern B: Correct trigger, wrong job guard

on:
  pull_request:
  merge_group:

jobs:
  test:
    if: github.event_name == 'pull_request'
    runs-on: ubuntu-latest
    steps:
      - run: npm test

Workflow starts, but the required job is skipped in merge-group runs.

Pattern C: Safe baseline for queue-compatible checks

on:
  pull_request:
    branches: [main]
  merge_group:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm test

4. 5-minute triage checklist

  1. Open branch protection and copy exact required-check names.
  2. Confirm those checks map to active workflow jobs.
  3. Verify each required workflow includes merge_group trigger.
  4. Audit job-level if: guards for event filters that skip merge-group context.
  5. Rebase rollback PR branch to latest protected tip and requeue.
  6. Watch for new run creation in Actions; no run means trigger/guard issue still exists.

5. Queue-safe remediation workflow

  1. Create a small infrastructure PR that only fixes workflow triggers/guards.
  2. Merge that fix through normal policy path.
  3. Requeue the rollback PR without adding unrelated changes.
  4. Confirm required checks start in merge-group context.
  5. Complete rollback merge and run production validation checklist.
Execution tip: keep trigger-fix and rollback-fix as separate PRs when possible. Separation reduces review ambiguity and post-incident audit effort.

6. YAML and CLI recipes

Create a minimal trigger-fix branch

git fetch origin

git switch -c fix/merge-group-trigger origin/main
# Edit workflow files under .github/workflows/

git add .github/workflows
git commit -m "Fix merge_group triggers for required checks"
git push -u origin fix/merge-group-trigger

Queue-safe rollback branch refresh

git fetch origin

git switch rollback/incident-main
git rebase origin/main
git push --force-with-lease
# Requeue the PR after updated checks are visible

Quick verification via GitHub CLI

# Inspect check rollout for a PR
PR=123
gh pr view "$PR" --json statusCheckRollup,headRefName

# Optional: inspect workflow runs for the branch
gh run list --limit 20 --json databaseId,event,status,conclusion,workflowName,headBranch

7. Incident rollout checklist

  1. Assign incident owner and CI workflow owner.
  2. Document required checks currently pending and expected workflow files.
  3. Patch triggers and guards with smallest possible diff.
  4. Post progress updates in incident channel every queue state change.
  5. After rollback merge, record fixed workflow commit hash in postmortem draft.

Once stable, review all required workflows for consistent trigger coverage so the same failure mode does not recur in the next rollback window.

8. FAQ

Do all workflows need merge_group triggers?

No. Only workflows that map to required checks for protected branches need merge-group compatibility.

Can skipped jobs still satisfy required checks?

Usually no for strict required checks. A skipped required job often keeps queue readiness unresolved.

Is merge_group needed if we do not use merge queue?

No. It becomes relevant when branch policies depend on merge queue validation.

What if queue checks start but are very slow?

Then investigate runner capacity and queue starvation using the Merge Queue Rollback Stuck Guide.

Where should I go after trigger fixes are done?

Use the Required Checks Guide for direct test/lint failure remediation and the Pending Checks Guide for broader non-start triage.

Related Resources

Merge Queue Rollback Required Checks Guide Fix rollback PR required-check failures after trigger wiring is corrected. Merge Queue Rollback Stuck Guide Queue-level triage when rollback PRs stay blocked despite approvals. Merge Queue Pending Checks Guide Broader pending-state runbook for non-start and long-latency queue checks. Flaky Required Checks Guide Stabilize intermittent required-check failures that block rollback merge windows. GitHub Actions CI/CD Complete Guide Deep workflow design patterns, caching, reusable actions, and runner operations. Protected Branch Revert + Merge Queue Safe rollback flow when PR-only and required-check rules are enforced. Git Commands Cheat Sheet Fast command reference for rollback and incident-response workflows.