ERROR: Registering runner... failed runner=38BUk9-k status=404 Not Found

It looks like 404 Not Found is an inaccurately chosen error code coming from this endpoint. In this case it actually means that the GitLab instance attempted and failed to save a new runner.

In fact, for the moment, a 404 indirectly indicates a successful connection to the instance, as well as a valid token.

If you are running a GitLab instance yourself, perhaps it might help to check the production.log at the time of registration to find out why the runner wasn’t saved.