Recently, we've been observing an increased number of ephemeral JIT runners being removed from the server after listening for jobs for 2 to 6 minutes, mostly close to 6 minutes.
Has GitHub started enforcing an idle minutes limit for ephemeral JIT runners? If so, what is the limit, and is there any documentation about it?
Example 1
Sep 16 15:14:45: √ Connected to GitHub
Sep 16 15:14:46: Current runner version: '2.337.0'
Sep 16 15:14:46: 2026-09-16 15:14:46Z: Listening for Jobs
Sep 16 15:16:47: The runner no longer exists on the server. Cleaning up local configuration.
Sep 16 15:16:47: √ Removed .credentials
Sep 16 15:16:47: √ Removed .runner
Sep 16 15:16:47: Runner listener exit with 0 return code, stop the service, no retry needed.
Sep 16 15:16:47: Exiting runner...
Example 2
Sep 16 17:26:15: √ Connected to GitHub
Sep 16 17:26:16: Current runner version: '2.337.0'
Sep 16 17:26:16: 2026-09-16 17:26:16Z: Listening for Jobs
Sep 16 17:32:17: The runner no longer exists on the server. Cleaning up local configuration.
Sep 16 17:32:17: √ Removed .credentials
Sep 16 17:32:17: √ Removed .runner
Sep 16 17:32:17: Runner listener exit with 0 return code, stop the service, no retry needed.
Sep 16 17:32:17: Exiting runner...
Recently, we've been observing an increased number of ephemeral JIT runners being removed from the server after listening for jobs for 2 to 6 minutes, mostly close to 6 minutes.
Has GitHub started enforcing an idle minutes limit for ephemeral JIT runners? If so, what is the limit, and is there any documentation about it?
Example 1
Example 2