I had set up the self hosted runner. however, server machine got abruptly shut down. Post this when I restarted the machine and tried bringing the runner ONLINE with commands , I observed below error
[2026-05-05 17:07:36,878] An error occurred whilst updating runner state to "ONLINE".
org.springframework.web.reactive.function.client.WebClientResponseException$BadRequest: 400 Bad Request from POST https://auth.atlassian.com/oauth/token
at org.springframework.web.reactive.function.client.WebClientResponseException.create(WebClientResponseException.java:217)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
*__checkpoint Γçó 400 from POST https://auth.atlassian.com/oauth/token [DefaultWebClient]
Original Stack Trace:
at org.springframework.web.reactive.function.client.WebClientResponseException.create(WebClientResponseException.java:217)
at org.springframework.web.reactive.function.client.DefaultClientResponse.lambda$createException$1(DefaultClientResponse.java:207)
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106)
at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
Just checking in here - may I know if you've tried removing and re-creating your runner to see if this resolves the problem?
If this still does not help, please let me know your timezone so I may raise a ticket directly with our support team on your behalf. I can see that you belong to a workspace on a Premium plan, which entitles you to direct support.
Cheers!
- Ben (Bitbucket Cloud Support)
Hello @Harshada Vichare
Seeing a 400 Bad Request on that OAuth endpoint usually means your runner is tripping over its own credentials before it even gets to your code. Since this started after an abrupt shutdown, it’s likely that the runner's registration data or the secret tokens in your startup script got corrupted or are being handled as "stale" by Bitbucket.
The quickest way to get back online is to avoid fighting with the old configuration. I'd recommend deleting the runner in the Bitbucket UI and creating a brand-new one. When you get the freshly generated startup command, copy it exactly. One missing character in the OAUTH_CLIENT_SECRET or an incorrectly escaped RUNNER_UUID will trigger that "Bad Request" every time.
If you're using Docker, make sure to stop any "ghost" containers from the previous session so they aren't competing for the same registration. If a totally fresh runner still fails, double-check if your network has a proxy or firewall that might be intercepting the HTTPS traffic; if the SSL handshake is modified by your host, the OAuth signature will break.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.