Skip to content

After upgrade from 8.6.9 to 8.14.0 and then to 8.14.1: fail to fork / move / fork from github

curl -k --request POST --header "PRIVATE-TOKEN: xxxxxxxxxxxxxxxxxxxxx" "https://gitlab.internalgitlab.lan/api/v3/projects/fork/57" {"message":{"base":["Unable to save project. Error: Validation failed: Project key can't be blankProject ID: 151"]}}

==> /var/log/gitlab/gitlab-rails/production.log <==
Started POST "/api/v3/projects/fork/57" for 10.7.1.60 at 2016-11-29 15:17:46 +0100
  User Load (1.6ms)  SELECT  "users".* FROM "users" WHERE "users"."authentication_token" = $1  ORDER BY "users"."id" DESC LIMIT 1  [["authentication_token", "xxxxxxxxxxxxxxxxxxxxx"]]
  PersonalAccessToken Load (0.4ms)  SELECT  "personal_access_tokens".* FROM "personal_access_tokens" WHERE "personal_access_tokens"."revoked" = $1 AND (expires_at >= NOW() OR expires_at IS NULL) AND "personal_access_tokens"."token" = $2 LIMIT 1  [["revoked", "f"], ["token", "xxxxxxxxxxxxxxxxxxxxx"]]
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" DESC LIMIT 1  [["id", 50]]
  Identity Exists (0.4ms)  SELECT  1 AS one FROM "identities" WHERE "identities"."user_id" = $1 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 1  [["user_id", 50]]
  Project Load (1.0ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."pending_delete" = $1 AND "projects"."id" = $2  ORDER BY "projects"."id" DESC LIMIT 1  [["pending_delete", "f"], ["id", 57]]
  Identity Exists (0.2ms)  SELECT  1 AS one FROM "identities" WHERE "identities"."user_id" = $1 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 1  [["user_id", 50]]
   (0.9ms)  SELECT "members"."user_id", "members"."access_level" FROM "members" LEFT OUTER JOIN "users" ON "users"."id" = "members"."user_id" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND "members"."requested_at" IS NULL AND "members"."user_id" = 50 AND ("members"."user_id" IS NULL AND "members"."invite_token" IS NOT NULL OR "users"."state" = 'active') AND "members"."requested_at" IS NULL AND (access_level > 0)  ORDER BY "members"."id" DESC  [["source_type", "Project"], ["source_id", 57], ["source_type", "Project"]]
  Group Load (0.5ms)  SELECT  "namespaces".* FROM "namespaces" WHERE "namespaces"."deleted_at" IS NULL AND "namespaces"."type" IN ('Group') AND "namespaces"."id" = $1 AND "namespaces"."type" IN ('Group') AND "namespaces"."type" = $2  ORDER BY "namespaces"."id" DESC LIMIT 1  [["id", 27], ["type", "Group"]]
   (0.6ms)  SELECT "members"."user_id", "members"."access_level" FROM "members" LEFT OUTER JOIN "users" ON "users"."id" = "members"."user_id" WHERE "members"."source_type" = $1 AND "members"."type" IN ('GroupMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('GroupMember') AND "members"."requested_at" IS NULL AND "members"."user_id" = 50 AND ("members"."user_id" IS NULL AND "members"."invite_token" IS NOT NULL OR "users"."state" = 'active') AND "members"."requested_at" IS NULL AND (access_level > 0)  ORDER BY "members"."id" DESC  [["source_type", "Namespace"], ["source_id", 27], ["source_type", "Namespace"]]
  Group Exists (0.4ms)  SELECT  1 AS one FROM "namespaces" INNER JOIN "project_group_links" ON "namespaces"."id" = "project_group_links"."group_id" WHERE "namespaces"."deleted_at" IS NULL AND "namespaces"."type" IN ('Group') AND "project_group_links"."project_id" = $1 LIMIT 1  [["project_id", 57]]
  User Exists (0.4ms)  SELECT  1 AS one FROM "users" INNER JOIN "members" ON "users"."id" = "members"."user_id" WHERE "members"."source_type" = $1 AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."access_level" = $4 AND "members"."type" IN ('GroupMember') AND "members"."requested_at" IS NULL AND "users"."id" = $5 LIMIT 1  [["source_type", "Namespace"], ["source_id", 27], ["source_type", "Namespace"], ["access_level", 50], ["id", 50]]
  GroupMember Exists (0.2ms)  SELECT  1 AS one FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('GroupMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('GroupMember') AND "members"."requested_at" IS NULL AND "members"."user_id" = $4 LIMIT 1  [["source_type", "Namespace"], ["source_id", 27], ["source_type", "Namespace"], ["user_id", 50]]
  GroupMember Exists (0.2ms)  SELECT  1 AS one FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('GroupMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('GroupMember') AND ("members"."requested_at" IS NOT NULL) AND "members"."user_id" = $4 LIMIT 1  [["source_type", "Namespace"], ["source_id", 27], ["source_type", "Namespace"], ["user_id", 50]]
  ProjectFeature Load (0.4ms)  SELECT  "project_features".* FROM "project_features" WHERE "project_features"."project_id" = $1 LIMIT 1  [["project_id", 57]]
  Identity Exists (0.2ms)  SELECT  1 AS one FROM "identities" WHERE "identities"."user_id" = $1 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 1  [["user_id", 50]]
  ActiveRecord::SchemaMigration Load (0.4ms)  SELECT "schema_migrations".* FROM "schema_migrations"
  Namespace Load (0.8ms)  SELECT  "namespaces".* FROM "namespaces" WHERE "namespaces"."deleted_at" IS NULL AND "namespaces"."owner_id" = $1 AND "namespaces"."type" IS NULL  ORDER BY "namespaces"."id" DESC LIMIT 1  [["owner_id", 50]]
   (0.1ms)  BEGIN
  SQL (0.4ms)  INSERT INTO "project_features" ("created_at", "updated_at", "builds_access_level", "issues_access_level", "merge_requests_access_level", "snippets_access_level", "wiki_access_level", "repository_access_level") VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING "id"  [["created_at", "2016-11-29 14:17:49.309321"], ["updated_at", "2016-11-29 14:17:49.309321"], ["builds_access_level", 20], ["issues_access_level", 20], ["merge_requests_access_level", 20], ["snippets_access_level", 20], ["wiki_access_level", 20], ["repository_access_level", 20]]
   (0.3ms)  COMMIT
   (0.1ms)  BEGIN
   (0.1ms)  COMMIT
   (0.1ms)  BEGIN
   (0.1ms)  COMMIT
   (0.1ms)  BEGIN
   (0.1ms)  COMMIT
   (0.1ms)  BEGIN
  SQL (0.2ms)  UPDATE "project_features" SET "snippets_access_level" = $1, "updated_at" = $2 WHERE "project_features"."id" = $3  [["snippets_access_level", 0], ["updated_at", "2016-11-29 14:17:49.314305"], ["id", 125]]
   (0.2ms)  COMMIT
  Project Load (0.3ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."pending_delete" = $1 AND "projects"."id" = $2  ORDER BY "projects"."id" DESC LIMIT 1  [["pending_delete", "f"], ["id", 57]]
  Namespace Load (0.2ms)  SELECT  "namespaces".* FROM "namespaces" WHERE "namespaces"."deleted_at" IS NULL AND "namespaces"."id" = $1  ORDER BY "namespaces"."id" DESC LIMIT 1  [["id", 58]]
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" DESC LIMIT 1  [["id", 50]]
   (0.1ms)  BEGIN
  CACHE (0.0ms)  SELECT  "namespaces".* FROM "namespaces" WHERE "namespaces"."deleted_at" IS NULL AND "namespaces"."id" = $1  ORDER BY "namespaces"."id" DESC LIMIT 1  [["id", 58]]
  Project Exists (0.3ms)  SELECT  1 AS one FROM "projects" WHERE ("projects"."name" = 'project-to-move-test' AND "projects"."namespace_id" = 58) LIMIT 1
  Project Exists (0.2ms)  SELECT  1 AS one FROM "projects" WHERE ("projects"."path" = 'project-to-move-test' AND "projects"."namespace_id" = 58) LIMIT 1
   (0.5ms)  SELECT COUNT(*) FROM "projects" INNER JOIN "namespaces" ON "projects"."namespace_id" = "namespaces"."id" WHERE "projects"."pending_delete" = $1 AND "namespaces"."deleted_at" IS NULL AND "namespaces"."owner_id" = $2 AND "namespaces"."type" IS NULL  [["pending_delete", "f"], ["owner_id", 50]]
  Group Load (0.2ms)  SELECT  "namespaces".* FROM "namespaces" WHERE "namespaces"."deleted_at" IS NULL AND "namespaces"."type" IN ('Group') AND "namespaces"."id" = $1 AND "namespaces"."type" IN ('Group') AND "namespaces"."type" = $2  ORDER BY "namespaces"."id" DESC LIMIT 1  [["id", 58], ["type", "Group"]]
  Project Load (0.3ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."pending_delete" = $1 AND "projects"."id" = $2  ORDER BY "projects"."id" DESC LIMIT 1  [["pending_delete", "f"], ["id", 57]]
  Project Exists (0.3ms)  SELECT  1 AS one FROM "projects" WHERE "projects"."pending_delete" = $1 AND "projects"."namespace_id" = $2 AND "projects"."path" = $3 LIMIT 1  [["pending_delete", "f"], ["namespace_id", 58], ["path", "project-to-move-test.wiki"]]
  Project Load (0.3ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."runners_token" = $1 LIMIT 1  [["runners_token", "5yhCpy-iGmWQkEWk33Au"]]
  SQL (1.2ms)  INSERT INTO "projects" ("visibility_level", "description", "name", "path", "namespace_id", "import_status", "creator_id", "description_html", "runners_token", "created_at", "updated_at", "archived", "container_registry_enabled", "repository_storage", "shared_runners_enabled", "only_allow_merge_if_all_discussions_are_resolved") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16) RETURNING "id"  [["visibility_level", 20], ["description", ""], ["name", "project-to-move-test"], ["path", "project-to-move-test"], ["namespace_id", 58], ["import_status", "none"], ["creator_id", 50], ["description_html", ""], ["runners_token", "5yhCpy-iGmWQkEWk33Au"], ["created_at", "2016-11-29 14:17:49.351280"], ["updated_at", "2016-11-29 14:17:49.351280"], ["archived", "f"], ["container_registry_enabled", "t"], ["repository_storage", "default"], ["shared_runners_enabled", "t"], ["only_allow_merge_if_all_discussions_are_resolved", "f"]]
  SQL (0.4ms)  UPDATE "projects" SET "last_activity_at" = '2016-11-29 14:17:49.351280' WHERE "projects"."id" = $1  [["id", 151]]
  SQL (0.3ms)  INSERT INTO "forked_project_links" ("forked_from_project_id", "forked_to_project_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["forked_from_project_id", 57], ["forked_to_project_id", 151], ["created_at", "2016-11-29 14:17:49.355473"], ["updated_at", "2016-11-29 14:17:49.355473"]]
  SQL (0.2ms)  UPDATE "project_features" SET "project_id" = $1, "updated_at" = $2 WHERE "project_features"."id" = $3  [["project_id", 151], ["updated_at", "2016-11-29 14:17:49.357160"], ["id", 125]]
  ActsAsTaggableOn::Tagging Load (0.3ms)  SELECT "taggings".* FROM "taggings" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2  [["taggable_id", 151], ["taggable_type", "Project"]]
   (0.5ms)  COMMIT
   (0.1ms)  BEGIN
  Project Exists (0.3ms)  SELECT  1 AS one FROM "projects" WHERE ("projects"."name" = 'project-to-move-test' AND "projects"."id" != 151 AND "projects"."namespace_id" = 58) LIMIT 1
  Project Exists (0.2ms)  SELECT  1 AS one FROM "projects" WHERE ("projects"."path" = 'project-to-move-test' AND "projects"."id" != 151 AND "projects"."namespace_id" = 58) LIMIT 1
  Project Exists (0.2ms)  SELECT  1 AS one FROM "projects" WHERE "projects"."pending_delete" = $1 AND "projects"."namespace_id" = $2 AND "projects"."path" = $3 LIMIT 1  [["pending_delete", "f"], ["namespace_id", 58], ["path", "project-to-move-test.wiki"]]
  SQL (0.3ms)  UPDATE "projects" SET "import_status" = $1, "updated_at" = $2 WHERE "projects"."id" = $3  [["import_status", "started"], ["updated_at", "2016-11-29 14:17:49.366397"], ["id", 151]]
   (0.3ms)  COMMIT
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" DESC LIMIT 1  [["id", 50]]

==> /var/log/gitlab/gitlab-rails/application.log <==
November 29, 2016 15:17: testtest created a new project "testtest / project-to-move-test"

==> /var/log/gitlab/gitlab-shell/gitlab-shell.log <==
I, [2016-11-29T15:17:50.010782 #14200]  INFO -- : Adding project testtest/project-to-move-test.wiki.git at </var/opt/gitlab/git-data/repositories/testtest/project-to-move-test.wiki.git>.
I, [2016-11-29T15:17:50.014583 #14200]  INFO -- : Moving existing hooks directory and symlinking global hooks directory for /var/opt/gitlab/git-data/repositories/testtest/project-to-move-test.wiki.git.

==> /var/log/gitlab/gitlab-rails/production.log <==
  Service Load (0.5ms)  SELECT "services".* FROM "services" WHERE "services"."template" = $1 AND "services"."active" = $2  ORDER BY "services"."id" DESC  [["template", "t"], ["active", "t"]]
   (0.1ms)  BEGIN
   (0.1ms)  ROLLBACK
**Unable to save project. Error: Validation failed: Project key can't be blankProject ID: 151
**   (0.1ms)  BEGIN
  Project Exists (0.3ms)  SELECT  1 AS one FROM "projects" WHERE ("projects"."name" = 'project-to-move-test' AND "projects"."id" != 151 AND "projects"."namespace_id" = 58) LIMIT 1
  Project Exists (0.2ms)  SELECT  1 AS one FROM "projects" WHERE ("projects"."path" = 'project-to-move-test' AND "projects"."id" != 151 AND "projects"."namespace_id" = 58) LIMIT 1
  Project Exists (0.2ms)  SELECT  1 AS one FROM "projects" WHERE "projects"."pending_delete" = $1 AND "projects"."namespace_id" = $2 AND "projects"."path" = $3 LIMIT 1  [["pending_delete", "f"], ["namespace_id", 58], ["path", "project-to-move-test.wiki"]]
  SQL (0.3ms)  UPDATE "projects" SET "import_status" = $1, "updated_at" = $2 WHERE "projects"."id" = $3  [["import_status", "failed"], ["updated_at", "2016-11-29 14:17:50.096828"], ["id", 151]]
   (0.3ms)  COMMIT
  SQL (0.4ms)  UPDATE "projects" SET "import_error" = 'Unable to save project. Error: Validation failed: Project key can''t be blankProject ID: 151' WHERE "projects"."id" = $1  [["id", 151]]
   (0.1ms)  BEGIN
   (0.1ms)  COMMIT

==> /var/log/gitlab/gitlab-workhorse/current <==
2016-11-29_14:17:50.10620 devops01-dc-3s @ - - [2016-11-29 15:17:46.371522154 +0100 CET] "POST /api/v3/projects/fork/57 HTTP/1.1" 409 116 "" "curl/7.50.1" 3.734589

==> /var/log/gitlab/nginx/gitlab_access.log <==
10.7.1.60 - - [29/Nov/2016:15:17:50 +0100] "POST /api/v3/projects/fork/57 HTTP/1.1" 409 116 "-" "curl/7.50.1"


root@gitlab:[~]: gitlab-rake gitlab:env:info RAILS_ENV=production

System information
System:
Current User:	git
Using RVM:	no
Ruby Version:	2.3.1p112
Gem Version:	2.6.6
Bundler Version:1.13.6
Rake Version:	10.5.0
Sidekiq Version:4.2.1

GitLab information
Version:	8.14.1
Revision:	e45bf3d
Directory:	/opt/gitlab/embedded/service/gitlab-rails
DB Adapter:	postgresql
URL:		https://gitlab.internalgitlab.lan
HTTP Clone URL:	https://gitlab.internalgitlab.lan/some-group/some-project.git
SSH Clone URL:	git@gitlab.internalgitlab.lan:some-group/some-project.git
Using LDAP:	yes
Using Omniauth:	no

GitLab Shell
Version:	4.0.0
Repository storage paths:
- default: 	/var/opt/gitlab/git-data/repositories
Hooks:		/opt/gitlab/embedded/service/gitlab-shell/hooks/
Git:		/opt/gitlab/embedded/bin/git

all gitlab-rake gitlab:**:check without any errors