Bitbucket Runner Autoscaler fails to create a Workspace-level Runner
Asked by Bohdan Astapov:

Hi, we've deployed runner-autoscaler to our Kubernetes cluster to scale runners for us.  

It works for repository-level runner creation, however, for workspace level it crashes with this error:  

\`\`\`

INFO: \[k8s-runner-amd64-test\] Runner #1 for namespace: bitbucket setup...  
INFO: \[k8s-runner-amd64-test\] Starting to setup runner on Bitbucket workspace: REDACTED ...  
Traceback (most recent call last):  
File "/home/bitbucket/autoscaler/clients/base.py", line 36, in make_http_request  
response.raise_for_status()  
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status  
raise HTTPError(http_error_msg, response=self)  
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: <https://api.bitbucket.org/internal/workspaces/>\<REDACTED WORKSPACE UUID\>/pipelines-config/runners

During handling of the above exception, another exception occurred:

Traceback (most recent call last):  
File "/home/bitbucket/autoscaler/start.py", line 91, in \<module\>  
main()  
File "/home/bitbucket/autoscaler/start.py", line 87, in main  
poller.start()  
File "/home/bitbucket/autoscaler/start.py", line 47, in start  
fut.result()  
File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 451, in result  
return self.__get_result()  
File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result  
raise self._exception  
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run  
result = self.fn(\*self.args, \*\*self.kwargs)  
File "/home/bitbucket/autoscaler/strategy/pct_runners_idle.py", line 78, in process  
self.run()  
File "/home/bitbucket/autoscaler/strategy/pct_runners_idle.py", line 228, in run  
self.create_runner(i)  
File "/home/bitbucket/autoscaler/strategy/pct_runners_idle.py", line 105, in create_runner  
bitbucket_data = self.runner_service.create_bitbucket_runner(  
File "/home/bitbucket/autoscaler/services/bitbucket.py", line 52, in create_bitbucket_runner  
data = workspace_runner_api.create_runner(workspace.uuid, name, tuple(labels))  
File "/home/bitbucket/autoscaler/clients/bitbucket/base.py", line 128, in create_runner  
runner, _ = self.make_http_request(url, method='post', json=data, headers={'Content-Type': 'application/json'})  
File "/home/bitbucket/autoscaler/clients/base.py", line 40, in make_http_request  
raise AutoscalerHTTPError(response.text, status_code=response.status_code)  
autoscaler.core.exceptions.AutoscalerHTTPError: Status code: 404. {"type": "error", "error": {"message": "Resource not found"}}

\`\`\`


Answers:
author: Patrik S
body: Hello [@Bohdan Astapov](/t5/user/viewprofilepage/user-id/5161407),

thank you for reaching out to the Community!

Based on the error message being received (HTTP error 404 not found), this is usually returned when the credentials you are using to authenticate the request do not have access to that particular content.

In this case, could you please let us know how you configured the autoscale authentication? Are you using **Username and App Password** or **OAuth Client ID and Client secret**?

Also, were the credentials you are using created with at least the **repository:read** , **account:read** , **runner:write** scopes?

For testing purposes, could you try creating a new App password or Oauth consumer (based on which you are currently using) with full scopes selected and check if the same error occurs?

It's important to note that when using an app password, the account under which the app password was created needs to be a **Workspace Admin** in order to be able to create a Workspace-level runner.

Thank you, [@Bohdan Astapov](/t5/user/viewprofilepage/user-id/5161407) !

Patrik S

comments: author: Bohdan Astapov
body: Hello [@Patrik S](/t5/user/viewprofilepage/user-id/4603309) ,

Thank you for the answer. Our technical user indeed weren't a Workspace Admin. After we changed the permissions - it started to work.

Thank you!

Bohdan


Tags: bitbucket-cloud

bitbucket-pipelines

cloud

runner