pingdotgg / pingdotgg/t3code

[Bug]: Closing an external PR turns every jobless workflow run into a failure and sends an email flood

Open
#9,529 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

Build, CI, or release tooling

Steps to reproduce
  1. Open a pull request from an external contributor branch and push several commits while the repository requires approval before Actions jobs may run.
  2. Let the resulting workflow runs remain present with zero jobs.
  3. Close the pull request without merging.
  4. Observe all accumulated jobless runs at the instant the PR closes.

Concrete reproduction: PR #7434, codex/find-in-thread, was closed at 2026-09-04T00:28:23Z. Sixty-eight runs created on August 18 across 17 commits were all updated between 00:28:24Z and 00:28:26Z on September 4. The affected workflows were CI, Web Preview, Mobile EAS Preview, and Mobile Fingerprint Check, 17 runs each.

Example run: https://github.com/pingdotgg/t3code/actions/runs/32192170895

The Actions API reports:

{
  "name": "CI",
  "event": "pull_request",
  "status": "completed",
  "conclusion": "failure",
  "created_at": "2026-08-18T22:19:32Z",
  "updated_at": "2026-09-04T00:28:26Z",
  "head_sha": "8753a9bd9f7b0e798f99897084f8a5c014eedd7e"
}

The jobs endpoint reports total_count: 0 and jobs: [].

Expected behavior

Closing the PR should cancel or neutrally complete unapproved or otherwise jobless workflow runs without treating them as real CI failures. It should not send one failure notification for every workflow and commit accumulated on the PR.

Actual behavior

All 68 jobless runs changed to failure within three seconds of the PR closing. GitHub then sent 68 failure emails whose body says No jobs were run. The messages arrived together when the PR closed even though the runs were created more than two weeks earlier.

Impact

Minor bug or occasional failure

The email flood is noisy and misleading, and the workflow history records failures for runs that executed no jobs.

Version or commit

Repository Actions configuration as of PR #7434 closing on 2026-09-04

Environment

GitHub-hosted pull request from external contributor bj97301; observed through GitHub Actions API and Gmail notifications.

Logs or stack traces
gh run view 32192170895 --repo pingdotgg/t3code --json name,event,status,conclusion,createdAt,updatedAt,headSha,jobs
# conclusion: failure
# createdAt: 2026-08-18T22:19:32Z
# updatedAt: 2026-09-04T00:28:26Z
# jobs: []
Workaround

No practical contributor-side workaround after the runs accumulate. Repository maintainers may be able to avoid it by changing which workflows create runs before contributor approval, or by changing the close-time handling of pending or jobless runs.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository file, test, or code entry point is identified. Start by running gh run view 32192170895 --repo pingdotgg/t3code --json name,event,status,conclusion,createdAt,updatedAt,headSha,jobs and compare the jobless run behavior with the PR-closing timeline; done means explaining or changing the close-time handling so these runs are not recorded as failures or notified as real failures.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions
Domain
ci-cd
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.