{"record":{"id":"f0bb8c97a16d1991","repo":"kubernetes/kops","slug":"error-describing-volumes-v-f0bb8c","errorCode":null,"errorMessage":"error describing volumes: %v","messagePattern":"error describing volumes: (.+?)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/gce/status.go","lineNumber":80,"sourceCode":"// FindEtcdStatus discovers the status of etcd, by looking for the tagged etcd volumes\nfunc (c *gceCloudImplementation) findEtcdStatus(cluster *kops.Cluster) ([]kops.EtcdClusterStatus, error) {\n\tstatusMap := make(map[string]*kops.EtcdClusterStatus)\n\n\tlabels := c.Labels()\n\n\tzones, err := c.allZones()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar disks []*compute.Disk\n\n\t// TODO: Filter disks query by Label?\n\tctx := context.Background()\n\tfor _, zone := range zones {\n\t\tl, err := c.compute.Disks().List(ctx, c.project, zone)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error describing volumes: %v\", err)\n\t\t}\n\t\tfor _, d := range l {\n\t\t\tklog.V(4).Infof(\"Found disk %q with labels %v\", d.Name, d.Labels)\n\n\t\t\tmatch := true\n\t\t\tfor k, v := range labels {\n\t\t\t\tif d.Labels[k] != v {\n\t\t\t\t\tmatch = false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif match {\n\t\t\t\tdisks = append(disks, d)\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, disk := range disks {\n\t\tetcdClusterName := \"\"","sourceCodeStart":62,"sourceCodeEnd":98,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/gce/status.go#L62-L98","documentation":"findEtcdStatus wraps Compute Disks.List failure while scanning each zone for the cluster's etcd volumes (to reconstruct etcd cluster status). It fires when the GCE API errors for a zone, aborting status discovery used by FindClusterStatus.","triggerScenarios":"Thrown at upup/pkg/fi/cloudup/gce/status.go:80 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Grant compute.disks.list permission","Check quota and API health","Retry the status operation"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}