{"record":{"id":"afcb0329fd2cadea","repo":"hashicorp/terraform","slug":"failed-to-create-bucket-v-v","errorCode":null,"errorMessage":"failed to create bucket %v: %v","messagePattern":"failed to create bucket (.+?): (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/backend/remote-state/cos/client.go","lineNumber":308,"sourceCode":"\tlog.Printf(\"[DEBUG] getBucket %s/%s: code: %d, error: %v\", c.bucket, prefix, rsp.StatusCode, err)\n\tif rsp.StatusCode == 404 {\n\t\terr = fmt.Errorf(\"bucket %s not exists\", c.bucket)\n\t\treturn\n\t}\n\n\tif err != nil {\n\t\treturn\n\t}\n\n\treturn fs.Contents, nil\n}\n\n// putBucket create cos bucket\nfunc (c *remoteClient) putBucket() error {\n\trsp, err := c.cosClient.Bucket.Put(c.cosContext, nil)\n\tif rsp == nil {\n\t\tlog.Printf(\"[DEBUG] putBucket %s: error: %v\", c.bucket, err)\n\t\treturn fmt.Errorf(\"failed to create bucket %v: %v\", c.bucket, err)\n\t}\n\tdefer rsp.Body.Close()\n\n\tlog.Printf(\"[DEBUG] putBucket %s: code: %d, error: %v\", c.bucket, rsp.StatusCode, err)\n\tif rsp.StatusCode == 409 {\n\t\treturn nil\n\t}\n\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create bucket %v: %v\", c.bucket, err)\n\t}\n\n\treturn nil\n}\n\n// deleteBucket delete cos bucket\nfunc (c *remoteClient) deleteBucket(recursive bool) error {\n\tif recursive {","sourceCodeStart":290,"sourceCodeEnd":326,"githubUrl":"https://github.com/hashicorp/terraform/blob/c9def3e214014c1188faabfc4a5bde5095139765/internal/backend/remote-state/cos/client.go#L290-L326","documentation":"Raised by putBucket() when cosClient.Bucket.Put returns a nil response — the create-bucket request never produced a response. The wrapped error is the transport failure. This is the no-response branch of bucket creation.","triggerScenarios":"At client.go:305-308: rsp == nil. Triggered when creating the bucket during backend init: network/DNS/TLS failure, invalid endpoint, or auth failure before a response. Note a 409 (already exists) is silently accepted at client.go:313.","commonSituations":"Backend configured with 'create_bucket=true' but the endpoint/region is wrong or unreachable; credentials invalid causing auth to fail before response; network outage during 'terraform init'.","solutions":["Verify the configured region/endpoint is reachable and the region string is valid for Tencent COS.","Confirm credentials are valid and authorised to create buckets.","Retry after confirming connectivity.","If the bucket already exists in another region, point the backend at the correct region rather than relying on auto-create."],"exampleFix":"# validate region + reachability\ncurl -I https://cos.ap-guangzhou.myqcloud.com\n# then re-init\nterraform init","handlingStrategy":"retry","validationCode":"// Preflight: confirm endpoint reachability and a valid region string.\nvar validCOSRegions = map[string]bool{\"ap-guangzhou\":true,\"ap-beijing\":true /*...*/}\nfunc validRegion(r string) bool { return validCOSRegions[r] }","typeGuard":null,"tryCatchPattern":"if err := c.putBucket(); err != nil {\n    if strings.Contains(err.Error(), \"failed to create bucket\") {\n        // nil-response: check connectivity/region then retry\n    }\n}","preventionTips":["Validate the region string against Tencent's supported COS regions.","Confirm credentials are authorised to create buckets.","Prefer pointing at an existing bucket over auto-create in production."],"tags":["cos","tencent-cloud","bucket","create","network","init"],"analyzedSha":"c9def3e214014c1188faabfc4a5bde5095139765","analyzedAt":"2026-08-07T15:39:49.278Z","schemaVersion":2},"datasetVersion":"2026-08-07T20:17:04.800Z"}