# GitHub Actions: The runner has received a shutdown signal. This can happen when the runner service is stopped, or a manually started runner is canceled

**Code:** `The runner has received a shutdown signal` · **Category:** CI/CD · **Seen on:** GitHub Actions, Linux

The machine running your job was shut down or reclaimed while the job was running — a self-hosted runner stopped, a spot instance was preempted, or the host ran out of resources.

## Meaning

For GitHub-hosted runners this is rare and usually transient (re-run). On self-hosted or autoscaled runners it means the runner process or VM was stopped: a deployment of the runner, an instance reclaim, a Ctrl+C on a manually started runner, or resource exhaustion that killed the service.

## Common causes

- Self-hosted runner process or service stopped/restarted
- Spot or preemptible instance reclaimed by the cloud provider
- Host out of memory or disk, so the runner agent was killed
- Autoscaler scaling down while a job was running
- Manual cancel of a runner started in a terminal

## Quick fix

1. Re-run the job (transient)
2. For self-hosted: run the runner as a service and check `journalctl` for restarts
3. Disable scale-in while jobs run; use on-demand instances for long jobs

## Detailed fix by platform

### Linux

1. `sudo journalctl -u 'actions.runner.*' --since "1 hour ago"` and `dmesg | grep -i -E "killed process|out of memory"`

### GitHub Actions

1. Use ephemeral runners with a termination grace period or `runs-on` a larger hosted runner for heavy jobs

## How to diagnose

1. **Runner** — Hosted or self-hosted?
2. **Host** — Reclaimed, rebooted or out of memory?
3. **Pattern** — Always at the same step?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/cicd/gha-runner-shutdown-signal)
