{"record":{"id":"f434e63f5c176646","repo":"kubernetes/kops","slug":"error-creating-network-v-f434e6","errorCode":null,"errorMessage":"error creating network: %v","messagePattern":"error creating network: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/openstack/network.go","lineNumber":204,"sourceCode":"\t\treturn net, err\n\t} else if done {\n\t\treturn net, nil\n\t} else {\n\t\treturn net, wait.ErrWaitTimeout\n\t}\n}\n\nfunc (c *openstackCloud) CreateNetwork(opt networks.CreateOptsBuilder) (*networks.Network, error) {\n\treturn createNetwork(c, opt)\n}\n\nfunc createNetwork(c OpenstackCloud, opt networks.CreateOptsBuilder) (*networks.Network, error) {\n\tvar n *networks.Network\n\n\tdone, err := vfs.RetryWithBackoff(writeBackoff, func() (bool, error) {\n\t\tr, err := networks.Create(context.TODO(), c.NetworkingClient(), opt).Extract()\n\t\tif err != nil {\n\t\t\treturn false, fmt.Errorf(\"error creating network: %v\", err)\n\t\t}\n\t\tn = r\n\t\treturn true, nil\n\t})\n\tif err != nil {\n\t\treturn n, err\n\t} else if done {\n\t\treturn n, nil\n\t} else {\n\t\treturn n, wait.ErrWaitTimeout\n\t}\n}\n\nfunc (c *openstackCloud) DeleteNetwork(networkID string) error {\n\treturn deleteNetwork(c, networkID)\n}\n\nfunc deleteNetwork(c OpenstackCloud, networkID string) error {","sourceCodeStart":186,"sourceCodeEnd":222,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/openstack/network.go#L186-L222","documentation":"The Neutron network create call failed. Creation is retried with backoff; persistent failure is usually a quota, name collision, or invalid option problem reported in the wrapped error.","triggerScenarios":"networks.Create fails: invalid CreateOpts (e.g. missing admin state, bad MTU), duplicate network name where uniqueness enforced, quota exceeded (409), or auth/policy denial (403).","commonSituations":"Project network quota exhausted; spec requesting provider/segment settings the plugin doesn't support; insufficient role to create networks; Neutron plugin limitations (e.g. flat/vlan constraints).","solutions":[],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// check quota and opts before create\nq, _ := osClient.NetworkingV2().Quotas.Get(ctx, projectID).Extract()\n// ensure q.Network > currentNetworkCount","typeGuard":null,"tryCatchPattern":"net, err := createNetwork(c, opt)\nif err != nil {\n    var gerr gophercloud.ErrUnexpectedResponseCode\n    if errors.As(err, &gerr) {\n        switch gerr.Actual {\n        case 409: return nil, fmt.Errorf(\"network quota/conflict: %w\", err)\n        case 400: return nil, fmt.Errorf(\"invalid network CreateOpts: %w\", err)\n        case 403: return nil, fmt.Errorf(\"insufficient role to create network: %w\", err)\n        }\n    }\n    return nil, err\n}","preventionTips":["Check project network quota before cluster creation","Ensure the credentials' role permits network creation","Validate CreateOpts (MTU, provider networks) against Neutron plugin capabilities","Clean up stale networks to free quota"],"tags":["openstack","neutron","network","create"],"backgroundTag":"openstack-api-error","analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}