Skip to content

Unable to Unregister self-hosted runner through the ./config.sh script #4017

Description

@triple3567

Describe the bug

After configuring a self-hosted runner, I am unable to un-configure the runner through the ./config.sh script.

I am configuring many ephemeral runners on many different machines. runner is using a unique runner registration token when running the ./config.sh script. I have been doing this for over a year now and this is the first time we have run into this error.

While at first glance it looks like we are running into api rate limits, I have verified that the token we use to generate the runner registration token is not hitting the maximum rate limit. It also looks like that we are being rate limited based off the IP of the machine, but if this was the case, then we should not be able to configure the runners in the first place. We are only seeing this issue when trying to unconfigure the runners.

To Reproduce
Steps to reproduce the behavior:

  1. Register a runner with ./config.sh --url <YOUR_URL> --token <RUNNER_REGISTRATION_TOKEN>
  2. Unregister the runner with ./config remove --token <RUNNER_REGISTRATION_TOKEN>
  3. See error

Expected behavior
The runner should be able to be successfully unconfigured. If it is in fact we are being IP rate limited, we should not be able to configure the runner in the first place

Runner Version and Platform

Version of your runner?

2.328.0

OS of the machine running the runner? OSX/Windows/Linux/...

Linux

What's not working?

[runner@0e772ec2ad02 ~]$ ./config.sh remove --token

Runner removal

Machine #1:


[runner@18e845967257 ~]$ ./config.sh --url https://github.com/trilinostesting/Trilinos --token <TOKEN_REDACTED>

--------------------------------------------------------------------------------
|        ____ _ _   _   _       _          _        _   _                      |
|       / ___(_) |_| | | |_   _| |__      / \   ___| |_(_) ___  _ __  ___      |
|      | |  _| | __| |_| | | | | '_ \    / _ \ / __| __| |/ _ \| '_ \/ __|     |
|      | |_| | | |_|  _  | |_| | |_) |  / ___ \ (__| |_| | (_) | | | \__ \     |
|       \____|_|\__|_| |_|\__,_|_.__/  /_/   \_\___|\__|_|\___/|_| |_|___/     |
|                                                                              |
|                       Self-hosted runner registration                        |
|                                                                              |
--------------------------------------------------------------------------------

# Authentication


√ Connected to GitHub

# Runner Registration

Enter the name of the runner group to add this runner to: [press Enter for Default] 

Enter the name of runner: [press Enter for 18e845967257] 

This runner will have the following labels: 'self-hosted', 'Linux', 'X64' 
Enter any additional labels (ex. label-1,label-2): [press Enter to skip] 

√ Runner successfully added
√ Runner connection is good

# Runner settings

Enter name of work folder: [press Enter for _work] 

√ Settings Saved.

[runner@18e845967257 ~]$ ./config.sh remove --token <TOKEN_REDACTED>

# Runner removal

Http response code: Forbidden from 'Delete https://api.github.com/repos/trilinostesting/Trilinos/actions/runners/73318' (Request Id: 7421:20F08F:2274CCE:7D00EE5:68BB05DA)
{"message":"API rate limit exceeded for 198.102.151.244. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) If you reach out to GitHub Support for help, please include the request ID 7421:20F08F:2274CCE:7D00EE5:68BB05DA and timestamp 2025-09-05 15:46:34 UTC.","documentation_url":"https://docs.github.com/rest/overview/rate-limits-for-the-rest-api","status":"403"}
Http response code: Forbidden from 'Delete https://api.github.com/repos/trilinostesting/Trilinos/actions/runners/73318' (Request Id: 1D61:1A82DF:21A132F:79ACDED:68BB05DE)
{"message":"API rate limit exceeded for 198.102.151.244. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) If you reach out to GitHub Support for help, please include the request ID 1D61:1A82DF:21A132F:79ACDED:68BB05DE and timestamp 2025-09-05 15:46:38 UTC.","documentation_url":"https://docs.github.com/rest/overview/rate-limits-for-the-rest-api","status":"403"}
Http response code: Forbidden from 'Delete https://api.github.com/repos/trilinostesting/Trilinos/actions/runners/73318' (Request Id: CE61:27BC5C:215DA45:78B98B1:68BB05E2)
{"message":"API rate limit exceeded for 198.102.151.244. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) If you reach out to GitHub Support for help, please include the request ID CE61:27BC5C:215DA45:78B98B1:68BB05E2 and timestamp 2025-09-05 15:46:42 UTC.","documentation_url":"https://docs.github.com/rest/overview/rate-limits-for-the-rest-api","status":"403"}
Failed: Removing runner from the server
Response status code does not indicate success: 403 (Forbidden).

Machine #2:

[runner@0e772ec2ad02 ~]$ ./config.sh --url https://github.com/trilinostesting/Trilinos --token <TOKEN_REDACTED>

--------------------------------------------------------------------------------
|        ____ _ _   _   _       _          _        _   _                      |
|       / ___(_) |_| | | |_   _| |__      / \   ___| |_(_) ___  _ __  ___      |
|      | |  _| | __| |_| | | | | '_ \    / _ \ / __| __| |/ _ \| '_ \/ __|     |
|      | |_| | | |_|  _  | |_| | |_) |  / ___ \ (__| |_| | (_) | | | \__ \     |
|       \____|_|\__|_| |_|\__,_|_.__/  /_/   \_\___|\__|_|\___/|_| |_|___/     |
|                                                                              |
|                       Self-hosted runner registration                        |
|                                                                              |
--------------------------------------------------------------------------------

# Authentication


√ Connected to GitHub

# Runner Registration

Enter the name of the runner group to add this runner to: [press Enter for Default] 

Enter the name of runner: [press Enter for 0e772ec2ad02] 

This runner will have the following labels: 'self-hosted', 'Linux', 'X64' 
Enter any additional labels (ex. label-1,label-2): [press Enter to skip] 

√ Runner successfully added
√ Runner connection is good

# Runner settings

Enter name of work folder: [press Enter for _work] 

√ Settings Saved.


[runner@0e772ec2ad02 ~]$ ./config.sh remove --token <TOKEN_REDACTED>

# Runner removal

Http response code: Forbidden from 'Delete https://api.github.com/repos/trilinostesting/Trilinos/actions/runners/73313' (Request Id: FE01:33BEA7:350F12:BF0AEF:68BAFF3B)
{"message":"API rate limit exceeded for 198.102.151.242. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) If you reach out to GitHub Support for help, please include the request ID FE01:33BEA7:350F12:BF0AEF:68BAFF3B and timestamp 2025-09-05 15:18:19 UTC.","documentation_url":"https://docs.github.com/rest/overview/rate-limits-for-the-rest-api","status":"403"}
Http response code: Forbidden from 'Delete https://api.github.com/repos/trilinostesting/Trilinos/actions/runners/73313' (Request Id: 8921:62C02:3262CB:B542C2:68BAFF40)
{"message":"API rate limit exceeded for 198.102.151.242. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) If you reach out to GitHub Support for help, please include the request ID 8921:62C02:3262CB:B542C2:68BAFF40 and timestamp 2025-09-05 15:18:24 UTC.","documentation_url":"https://docs.github.com/rest/overview/rate-limits-for-the-rest-api","status":"403"}
Http response code: Forbidden from 'Delete https://api.github.com/repos/trilinostesting/Trilinos/actions/runners/73313' (Request Id: 4E61:3DA50C:385769:CB2B42:68BAFF42)
{"message":"API rate limit exceeded for 198.102.151.242. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) If you reach out to GitHub Support for help, please include the request ID 4E61:3DA50C:385769:CB2B42:68BAFF42 and timestamp 2025-09-05 15:18:26 UTC.","documentation_url":"https://docs.github.com/rest/overview/rate-limits-for-the-rest-api","status":"403"}
Failed: Removing runner from the server
Response status code does not indicate success: 403 (Forbidden).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions