GitHub Actions

Alerts when a scheduled workflow fails or stops running.

Find out when a scheduled workflow fails or stops running

Scheduled workflows fail without telling anyone. GitHub can delay or skip a run, it turns off schedules in quiet public repositories after 60 days, and a nightly job can fail for weeks in a repository nobody watches. Add the free, open-source Pingstack Heartbeat action (pingstack-io/heartbeat-action) as the last step, and every run reports to a heartbeat check.

  • A run fails: you get an alert right away, with a link to the failed run.
  • A run never happens: you get an alert once it’s overdue.
  • A run succeeds but does nothing: send a number, like rows exported, and you’ll hear about it when it crosses a threshold.

Set it up

  1. Create a heartbeat check in Pingstack with the same cron schedule as your workflow.
  2. Save its ping URL as a repository secret named PINGSTACK_PING_URL.
  3. Add the step at the end of the job:
- name: Report to Pingstack
  if: always()
  uses: pingstack-io/heartbeat-action@v1
  with:
    ping-url: ${{ secrets.PINGSTACK_PING_URL }}

The action is a short script with no dependencies, and it runs on Linux, macOS and Windows runners. It keeps the ping URL out of your logs and never fails your job if Pingstack can’t be reached. Full steps are in the docs, and the source is on GitHub.

You might be interested in

Turn incidents into Jira tickets.

Related to Claude Code, Codex, Cursor and other MCP clients

Claude Code, Codex, Cursor and other MCP clients

Learn more about claude code, codex, cursor and other mcp clients

Let your AI agent create checks and read incidents.

Wrap any scheduled job to report failures, output and run times.

Send incidents anywhere.

Add your first check free.

Free for 15 checks
No card needed