Bug Report BR-053: GitHub Actions Workflow Push Trigger Bug
Bug Summary
Critical GitHub Actions bug where workflows are being triggered by push events despite having on: issues: only configuration. This affects multiple workflow files with different names and persists across complete workflow recreations.
Environment
- Repository: earlution/ai-dev-kit
- Platform: GitHub Actions
- Date Reported: 2026-03-12
- Severity: Critical (prevents core repository functionality)
- Impact: FR/BR/UXR intake automation completely broken
Bug Description
GitHub Actions workflows configured with on: issues: only are being triggered by push events, causing "No jobs were run" email spam and preventing proper issue-based automation.
Problematic Behavior
- ❌ Workflows trigger on every push to main branch
- ❌ Jobs skip due to missing issue context
- ❌ "No jobs were run" email notifications sent to maintainers
- ❌ Issue-based automation completely non-functional
- ❌ Multiple workflow files affected with different names
Comprehensive Testing Evidence
Test 1: Original Workflow Investigation
File: .github/workflows/fr-br-intake.yml
Configuration:
on:
issues:
types: [opened, labeled, unlabeled]
workflow_dispatch:
Result: Workflow triggered on push events (commit: 64e6ed0d, 468ed723, etc.)
Test 2: Trigger Modification
Approach: Removed edited from triggers
Configuration:
on:
issues:
types: [opened, labeled, unlabeled] # Removed 'edited'
workflow_dispatch:
Result: Still triggered on push events (commit: 4ba795a2)
Test 3: Explicit Event Checking
Approach: Added explicit event name checking in job condition Configuration:
jobs:
convert-issue-to-document:
if: |
github.event_name == 'issues' && # Explicit check
github.event.action != 'edited' &&
contains(github.event.issue.labels.*.name, 'needs-triage') &&
(contains(github.event.issue.labels.*.name, 'bug') ||
contains(github.event.issue.labels.*.name, 'enhancement') ||
contains(github.event.issue.labels.*.name, 'ux-research') ||
contains(github.event.issue.labels.*.name, 'feedback'))
Result: Still triggered on push events (commit: 39ccd9ee)
Test 4: False Condition Test
Approach: Added false && to job condition
Configuration:
jobs:
convert-issue-to-document:
if: |
false && # Should never run
contains(github.event.issue.labels.*.name, 'needs-triage') &&
...
Result: Workflow still triggered on push events with "No jobs were run" (commit: efc82878) Conclusion: Confirmed workflow is being triggered, not job execution issue
Test 5: File Disable Test
Approach: Renamed workflow file to disable it
Action: mv fr-br-intake.yml fr-br-intake.yml.DISABLED
Result: No more workflow triggers or emails (commit: 55404177)
Conclusion: Confirmed the specific workflow file was causing triggers
Test 6: Different Workflow Name
Approach: Created completely new workflow with different name
New File: .github/workflows/issue-intake-processor.yml
Configuration:
name: Issue Intake Processor # Different name
on:
issues:
types: [opened, labeled, unlabeled]
workflow_dispatch:
jobs:
process-issue: # Different job name
if: |
github.event_name == 'issues' &&
contains(github.event.issue.labels.*.name, 'needs-triage') &&
...
Result: New workflow also triggered on push events (commit: 9f77c55f) Conclusion: NOT a caching issue - affects multiple workflow files
Test 7: Complete Workflow Recreation
Approach: Created workflow with different structure and debug logging Features Added:
- Different filename
- Different job name
- Debug logging step
- Simplified triggers Result: Still triggered on push events (commit: 9f77c55f) Conclusion: Bug persists across complete workflow recreations
Evidence Timeline
| Time (UTC) | Commit | Test | Result |
|---|---|---|---|
| 11:09 | 64e6ed0d | Original fix attempt | Triggered on push |
| 11:12 | 4ba795a2 | Removed edited events | Triggered on push |
| 11:14 | 38092dd3 | Test push 1 | Triggered on push |
| 11:14 | dd5bac35 | Test push 2 | Triggered on push |
| 11:17 | efc82878 | False condition test | Triggered on push |
| 11:19 | 55404177 | File disable test | NO triggers ✅ |
| 11:23 | 39ccd9ee | Explicit event checking | Triggered on push |
| 11:28 | 9f77c55f | New workflow name | Triggered on push |
| 11:30 | f1c30abf | Disable all workflows | NO triggers ✅ |
Root Cause Analysis
Confirmed NOT Caused By:
- ❌ Caching: Different workflow names had same issue
- ❌ Configuration Error: Multiple approaches tried
- ❌ Job Conditions: Even false conditions didn't stop triggers
- ❌ Workflow Syntax: Multiple valid configurations tested
- ❌ Repository Settings: No obvious repository-level triggers found
Likely Causes:
- GitHub Actions Platform Bug: Core trigger system malfunction
- Repository-level Corruption: Specific repository trigger cache corruption
- GitHub Internal Issue: Platform-wide trigger handling bug
- Workflow Name Collision: Internal GitHub naming conflict
Impact Assessment
Immediate Impact
- Email Spam: "No jobs were run" notifications on every push
- Automation Broken: FR/BR/UXR intake process completely non-functional
- Developer Experience: Poor maintainers' notification experience
- Resource Waste: Unnecessary GitHub Actions executions
Long-term Impact
- Feature Loss: Cannot automate issue intake process
- Scalability Issues: Manual process doesn't scale
- User Experience: Poor contributor experience
- Maintenance Overhead: Increased manual work
Workarounds Attempted
Failed Workarounds
- ❌ Trigger modification
- ❌ Explicit event checking
- ❌ Job condition changes
- ❌ Workflow recreation
- ❌ Different workflow names
Successful Workaround
- ✅ Disable Workflows: Renaming files stops triggers
- Trade-off: No automation, but no spam emails
Required Information for GitHub Support
Repository Details
- Repository: earlution/ai-dev-kit
- Owner: earlution
- Visibility: Public
- Main Branch: main
Workflow Files
- Original:
.github/workflows/fr-br-intake.yml - Test:
.github/workflows/issue-intake-processor.yml - Current: Both disabled with
.DISABLEDsuffix
Recent Workflow Runs
- Latest Run ID: 22999378837 (push trigger)
- Pattern: Every push triggers workflow
- Expected: Only issue events should trigger
Evidence Links
- GitHub Actions Run: https://github.com/earlution/ai-dev-kit/actions/runs/22999378837
- Commit History: https://github.com/earlution/ai-dev-kit/commits/main
- Workflow Files: https://github.com/earlution/ai-dev-kit/tree/main/.github/workflows
Reproduction Steps
- Create any workflow with
on: issues:only triggers - Push any change to main branch
- Observe workflow runs despite no issue events
- Receive "No jobs were run" email notification
Expected vs Actual Behavior
Expected Behavior
- ✅ Workflow only triggers on issue events (opened, labeled, unlabeled)
- ✅ No push event triggers
- ✅ No "No jobs were run" emails
- ✅ Issue-based automation works correctly
Actual Behavior
- ❌ Workflow triggers on every push event
- ❌ "No jobs were run" emails on every push
- ❌ Issue-based automation broken
- ❌ Multiple workflow files affected
Support Request
Immediate Needs
- Investigate: Why workflows trigger on push despite
on: issues: - Fix: Restore proper trigger behavior
- Guidance: Alternative approaches if this is expected behavior
Information Needed
- Root Cause: What is causing this trigger behavior?
- Scope: Is this repository-specific or platform-wide?
- Timeline: When can this be fixed?
- Workaround: Are there any working alternatives?
Related Issues
- BR-051: GitHub Actions workflow spam emails (documentation)
- BR-052: GitHub Actions workflow optimization (attempted fix)
- Multiple GitHub Actions runs: Evidence in repository history
Contact Information
- Reporter: RW Agent (AI Dev Kit Maintainer)
- Repository: https://github.com/earlution/ai-dev-kit
- Urgency: Critical - Core repository functionality affected
GitHub Issue Reference
- Issue Number: N/A (Internal documentation)
- Evidence: Comprehensive testing across multiple scenarios
- Status: DISABLED - Workflows renamed to stop spam
- Next Step: GitHub Support intervention required
This bug report documents a critical GitHub Actions platform issue that prevents core repository functionality. Comprehensive testing has confirmed this is not a configuration or caching issue, but a platform-level bug requiring GitHub Support intervention.
Resolution / current status (2026-03-30)
Verified behavior (post–BR-057 valid YAML): Using gh run list --workflow fr-br-intake.yml on earlution/ai-dev-kit, every sampled run through 2026-03-25 used event: push (including after on: issues only was restored on main and epic/6-framework-management). No issues events appeared in the recent run window. Example run IDs: 23541602524 (push to epic/6-framework-management), 23352483560, 23352364482, consistent with the 2026-03-12 push-only pattern in the evidence table above.
BR-057 relationship: Invalid YAML could explain failed parses (“Invalid workflow file”), not incorrect trigger types while the workflow is accepted. Push scheduling with on: issues only remains reproducible with syntactically valid workflow definitions.
Repository action (E2:S11:T12): The active workflow file was removed from GitHub’s workflow file set by renaming .github/workflows/fr-br-intake.yml to .github/workflows/fr-br-intake.yml.DISABLED (source) (extension not .yml/.yaml). Canonical YAML is preserved in that file for a future re-enable. Manual intake is documented in FR_BR_UXR_FB_GITHUB_SUBMISSION_GUIDE.md (source) and the intake skill.
Acceptance criteria adjustment: “GitHub Bug Fixed” is not satisfied by vendor confirmation; evidence-based closure is: no spurious workflow runs after a future re-enable test, or continued disablement with documented manual process.