Quick answer
A job on a GitHub-hosted runner can execute for up to 6 hours. A self-hosted job has a separate 5 days execution ceiling.
Verified Aug 22, 2026Official source
Current limits
| Constraint | Current value | Scope | Verified source |
|---|---|---|---|
| GitHub-hosted job execution timeA job is terminated and fails when it reaches the limit. | 6 hours | All GitHub-hosted runners | GitHubAug 22, 2026 |
| Self-hosted job execution timeDistinct from the total workflow run time limit. | 5 days | Self-hosted runners | GitHubAug 22, 2026 |
Why does this limit matter?
A workflow can contain multiple jobs, so the per-job ceiling is not the same as total workflow run time.
A YAML timeout-minutes setting can intentionally stop a job before the platform ceiling.
What should you check?
- Check whether the job uses a GitHub-hosted or self-hosted runner.
- Inspect timeout-minutes in the job definition.
- Break long workloads into resumable jobs and persist intermediate artifacts.
Important caveats
- Queued time and approval waiting use separate limits.
- Runner availability, billing minutes, and concurrency can block progress before execution time is exhausted.
HyperObserve reports the documented platform constraint. Your application, SDK, gateway, provider, region, or account can impose a lower effective limit.
Related