GitHub Actions Scheduled Workflow Monitoring

GitHub doesn't alert you when a scheduled workflow stops running. External monitoring does. Add a dead man's switch to any GitHub Actions schedule in under 5 minutes.

Why GitHub Actions scheduled workflows fail silently

Setting up monitoring in 5 minutes

1. Create a monitor at deadmancheck.io. Set the interval to 25 hours (1-hour buffer for GitHub scheduling delays). Copy your token.

2. Add your token to GitHub: Settings → Secrets and variables → Actions → New secret → DEADMANCHECK_TOKEN

3. Add the ping step to your workflow:

name: Nightly export

on:
  schedule:
    - cron: '0 2 * * *'
  workflow_dispatch: # for testing

jobs:
  export:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v4

      - name: Ping start
        run: curl -fsS https://deadmancheck.io/ping/${{ secrets.DEADMANCHECK_TOKEN }}/start > /dev/null

      - name: Run export
        run: python scripts/export.py

      - name: Ping done
        if: success()
        run: curl -fsS https://deadmancheck.io/ping/${{ secrets.DEADMANCHECK_TOKEN }} > /dev/null

      - name: Ping fail
        if: failure()
        run: curl -fsS https://deadmancheck.io/ping/${{ secrets.DEADMANCHECK_TOKEN }}/fail > /dev/null

The ping only fires on if: success(). If any step fails, the fail ping fires instead. If the workflow never runs at all, neither fires — and DeadManCheck alerts you after 25 hours of silence.

Adding output assertions

To catch jobs that run but process nothing, include a count with the ping:

- name: Run export
  id: export
  run: |
    python scripts/export.py
    echo "rows=$(cat /tmp/export_count.txt)" >> $GITHUB_OUTPUT

- name: Ping done
  if: success()
  run: |
    curl -fsS "https://deadmancheck.io/ping/${{ secrets.DEADMANCHECK_TOKEN }}?count=${{ steps.export.outputs.rows }}" > /dev/null

Configure the assertion in DeadManCheck: "alert if count is 0". Now a successful workflow that exported nothing triggers an alert. See output assertions →

GitHub Actions scheduling gotchas

Related monitoring guides

Start monitoring free — no credit card needed

Free for 5 monitors. $12/mo for 100. See pricing →