kubernetes/kops · error
error creating Network: %v
Error message
error creating Network: %v
What it means
Wrapped error from Network.RenderGCE when the synchronous Networks.Insert call fails for a new network (a == nil). GCE rejected the create — common causes are an invalid CIDR for legacy mode, name collision, permissions, or networks quota.
Source
Thrown at upup/pkg/fi/cloudup/gcetasks/network.go:177
case "auto":
network.AutoCreateSubnetworks = true
case "custom":
network.AutoCreateSubnetworks = false
// The boolean default value of "false" is omitted when the struct
// is serialized, which results in the network being created with
// the auto-create subnetworks default of "true". Explicitly send
// the default value.
network.ForceSendFields = []string{"AutoCreateSubnetworks"}
default:
return fmt.Errorf("unhandled mode %q", e.Mode)
}
op, err := t.Cloud.Compute().Networks().Insert(t.Cloud.Project(), network)
if err != nil {
return fmt.Errorf("error creating Network: %v", err)
}
if err := t.Cloud.WaitForOp(op); err != nil {
return fmt.Errorf("error waiting for Network creation to complete: %w", err)
}
} else {
if a.Mode == "legacy" {
return fmt.Errorf("GCE networks in legacy mode are not supported. Please convert to auto mode or specify a different network.")
}
empty := &Network{}
if !reflect.DeepEqual(empty, changes) {
return fmt.Errorf("cannot apply changes to Network: %v", changes)
}
}
return nil
}
type terraformNetwork struct {View on GitHub (pinned to 4c8573c808)
Solutions
- Inspect the wrapped API error for the rejection reason
- Verify the network name is unused and the CIDR/mode combination is valid
- Clear quota/permission problems and re-run the apply
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/gcetasks/network.go:177 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/10beeb953ef0420b.
Report an issue: GitHub.