Confusing UX when trying to add a group runner to a specific project outside a group

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

  • Close this issue

Summary

On the Runners page it seems to be possible to add group runners to a specific project (outside that group).

However, after clicking the button, you simply get a 500 error message.

If that's something that shouldn't be made possible, the button should either be grayed out, or filtered in first place, with a note about why it's filtered.

Steps to reproduce

  • Create a GitLab CI runner inside a specific group and a project inside
  • Forked the project into your personal space
  • Try to add the recently created Runner to that personal fork
  • Boom

Relevant logs and/or screenshots

==> /var/log/gitlab/gitlab-rails/production.log <==
Started POST "/admin/projects/fklink/foo/runner_projects" for 185.104.140.104 at 2018-08-28 11:59:30 +0200
Processing by Admin::RunnerProjectsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "runner_project"=>{"runner_id"=>"3"}, "namespace_id"=>"fklink", "project_id"=>"foo"}
Completed 500 Internal Server Error in 21ms (ActiveRecord: 3.8ms)

==> /var/log/gitlab/gitlab-rails/production_json.log <==
{"method":"POST","path":"/admin/projects/fklink/foo/runner_projects","format":"html","controller":"Admin::RunnerProjectsController","action":"create","status":500,"error":"ArgumentError: Transitioning a group runner to a project runner is not supported","duration":22.71,"view":0.0,"db":3.84,"time":"2018-08-28T09:59:31.000Z","params":[{"key":"utf8","value":"✓"},{"key":"authenticity_token","value":"[FILTERED]"},{"key":"runner_project","value":{"runner_id":"3"}},{"key":"namespace_id","value":"fklink"},{"key":"project_id","value":"foo"}],"remote_ip":"185.104.140.104","user_id":1,"username":"root"}

==> /var/log/gitlab/gitlab-rails/production.log <==

ArgumentError (Transitioning a group runner to a project runner is not supported):
  app/models/ci/runner.rb:126:in `assign_to'
  lib/gitlab/metrics/instrumentation.rb:159:in `block in assign_to'
  lib/gitlab/metrics/method_call.rb:34:in `measure'
  lib/gitlab/metrics/instrumentation.rb:159:in `assign_to'
  app/controllers/admin/runner_projects_controller.rb:7:in `create'
  lib/gitlab/i18n.rb:51:in `with_locale'
  lib/gitlab/i18n.rb:57:in `with_user_locale'
  app/controllers/application_controller.rb:401:in `set_locale'
  lib/gitlab/middleware/multipart.rb:97:in `call'
  lib/gitlab/request_profiler/middleware.rb:14:in `call'
  lib/gitlab/middleware/go.rb:17:in `call'
  lib/gitlab/etag_caching/middleware.rb:11:in `call'
  lib/gitlab/middleware/rails_queue_duration.rb:22:in `call'
  lib/gitlab/metrics/rack_middleware.rb:15:in `block in call'
  lib/gitlab/metrics/transaction.rb:53:in `run'
  lib/gitlab/metrics/rack_middleware.rb:15:in `call'
  lib/gitlab/middleware/read_only/controller.rb:38:in `call'
  lib/gitlab/middleware/read_only.rb:16:in `call'
  lib/gitlab/middleware/basic_health_check.rb:25:in `call'
  lib/gitlab/request_context.rb:18:in `call'
  lib/gitlab/metrics/requests_rack_middleware.rb:27:in `call'
  lib/gitlab/middleware/release_env.rb:10:in `call'
Edited Oct 21, 2025 by 🤖 GitLab Bot 🤖
Assignee Loading
Time tracking Loading