Is there a way to delete or hide old/renamed Workflows?

Click on “…” and then “Delete workflow run”:

Make sure you delete all runs to get the workflow name off the list. There must not be any runs remaining - check the “All workflows” view, sometimes the runs are gone from the filtered list, but still under “All workflows” (bug?)

@Simran-B After doing that I have this:

The YAML file is long gone. There seems to be no way of removing these workflows from the repo.

@Cabalist You are using a filter workflow:"Black Style" . Remove it by clicking on [x] or click All workflows on the left hand side:


Then go through the list of workflow runs and delete all that are related to your former workflow.

@Simran-B Thanks for your response. :slight_smile: If I click All Workflows I still see it listed. I had clicked on it in order to filter to try and delete those. If you look at my original screenshot you can see it says “2 results” and yet nothing is there. ^ This is a screenshot fo it in the workflows list.

EDIT: I was able to remove it by manually looking through previous branches (branches I had otherwise deleted) and finding it. The filter was not returning all occurrences of this Workflows run! I have thousands of runs. I was lucky it was recent…

I know, it finds results but doesn’t list the workflow runs. This appears to be a bug.


Same problem here:

  • I renamed the yml file 2 times (don’t need them anymore, they’re gone/deleted now)
  • they still appear in the UI
  • I deleted all old runs associated with those 2 yml files
  • they still appear in the UI
  • I disabled them from the UI
  • they still appear in the UI
1 Like

I put together a (scriptable) solution here:


This is the best solution.

Here’s a few commands to quickly clean up your workflows.

You’ll need the xargs, gh and jq CLI tools.

Depending on how many runs you have you’ll have to execute the delete step multiple times because the GH API endpoints are paginated.

OWNER=<your user/org name>
REPO=<repo name>

# list workflows
gh api -X GET /repos/$OWNER/$REPO/actions/workflows | jq '.workflows[] | .name,.id'

# copy the ID of the workflow you want to clear and set it
WORKFLOW_ID=<workflow id>

# list runs
gh api -X GET /repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_ID/runs | jq '.workflow_runs[] | .id'

# delete all runs
gh api -X GET /repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_ID/runs | jq '.workflow_runs[] | .id' | xargs -I{} gh api -X DELETE /repos/$OWNER/$REPO/actions/runs/{}

Crazy that it’s two years later almost and no native fix.


@github/@ethomson any chance you’re going to come back and really solve this?

Are we in the future yet where this functionality exists?

1 Like

Any update about this issue?

This doesn’t seem to have been solved after all, unless I’m missing something.

so when is this going to be a thing? I have like 5 workflows with the same name due to file name changes and we need to delete them.

I certainly don’t want to go through and delete 800 records in order to make the workflow disappear