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.