Cannot Fork via API
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Cannot fork via api using the terraform provider:
terraform {
required_providers {
gitlab = {
source = "gitlabhq/gitlab"
version = "17.10.0"
}
}
}
resource "gitlab_project" "to-be-forked" {
name = "to-be-forked"
}
resource "gitlab_project" "forked-one" {
name = "forked-one"
forked_from_project_id = gitlab_project.to-be-forked.id
}
yields
╷
│ Error: Unable to fork project 68884178: POST https://gitlab.com/api/v4/projects/68884178/fork: 409 {message: [Path has already been taken]}
│
│ with gitlab_project.forked-one,
│ on main.tf line 14, in resource "gitlab_project" "forked-one":
│ 14: resource "gitlab_project" "forked-one" {
│
╵
the api call seems correct
2025-04-11T08:42:55.167+0200 [DEBUG] provider.terraform-provider-gitlab_v17.10.0: Sending HTTP Request: Accept-Encoding=gzip User-Agent="Terraform/1.9.0 (+https://www.terraform.io) Terraform-Plugin-SDK/2.36.1 terraform-provider-gitlab/17.10.0" @caller=github.com/hashicorp/terraform-plugin-sdk/v2@v2.36.1/helper/logging/logging_http_transport.go:160 tf_http_op_type=request tf_http_req_version=HTTP/1.1 tf_http_trans_id=cf5991c8-74e0-c459-b20e-c4fbafe108d2 @module=gitlab.GitLab Authorization="Bearer glpat-xsVouz5upn5pYC5EDevC" Content-Type=application/json tf_http_req_body="{\"name\":\"forked-one\"}" tf_http_req_method=POST tf_http_req_uri=/api/v4/projects/68884314/fork Accept=application/json Content-Length=21 Host=gitlab.com new_logger_warning="This log was generated by a subsystem logger that wasn't created before being used. Use tflog.NewSubsystem to create this logger before it is used." timestamp="2025-04-11T08:42:55.167+0200"
However, when creating the project and adding the fork relation afterwards works:
$ cat main.tf
terraform {
required_providers {
gitlab = {
source = "gitlabhq/gitlab"
version = "17.10.0"
}
}
}
resource "gitlab_project" "to-be-forked" {
name = "to-be-forked"
}
resource "gitlab_project" "forked-one" {
name = "forked-one"
# forked_from_project_id = gitlab_project.to-be-forked.id
}
…
gitlab_project.forked-one: Creating...
gitlab_project.forked-one: Creation complete after 3s [id=68884562]
$ cat main.tf
terraform {
required_providers {
gitlab = {
source = "gitlabhq/gitlab"
version = "17.10.0"
}
}
}
resource "gitlab_project" "to-be-forked" {
name = "to-be-forked"
}
resource "gitlab_project" "forked-one" {
name = "forked-one"
forked_from_project_id = gitlab_project.to-be-forked.id
}
…
OpenTofu will perform the following actions:
# gitlab_project.forked-one will be updated in-place
~ resource "gitlab_project" "forked-one" {
~ forked_from_project_id = 0 -> 68884314
id = "68884562"
name = "forked-one"
tags = []
# (75 unchanged attributes hidden)
# (1 unchanged block hidden)
}
…
OpenTofu will perform the following actions:
# gitlab_project.forked-one will be updated in-place
~ resource "gitlab_project" "forked-one" {
~ forked_from_project_id = 0 -> 68884314
id = "68884562"
name = "forked-one"
tags = []
# (75 unchanged attributes hidden)
# (1 unchanged block hidden)
}
Plan: 0 to add, 1 to change, 0 to destroy.
Do you want to perform these actions?
OpenTofu will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
gitlab_project.forked-one: Modifying... [id=68884562]
gitlab_project.forked-one: Modifications complete after 8s [id=68884562]
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
This is a regression. It worked fine some time ago.
Edited by 🤖 GitLab Bot 🤖