kubernetes/kops · error

failed to list monitors: %s

Error message

failed to list monitors: %s

What it means

Listing Octavia health-monitors failed at the API level while fetching all pages. Reads are retried with backoff, so persistence of this error points to endpoint, credential, or service availability problems.

Source

Thrown at upup/pkg/fi/cloudup/openstack/loadbalancer.go:80

			err = wait.ErrWaitTimeout
		}
		return poolMonitor, err
	}
	return poolMonitor, nil
}

func (c *openstackCloud) ListMonitors(opts monitors.ListOpts) (monitorList []monitors.Monitor, err error) {
	return listMonitors(c, opts)
}

func listMonitors(c OpenstackCloud, opts monitors.ListOpts) (monitorList []monitors.Monitor, err error) {
	if c.LoadBalancerClient() == nil {
		return monitorList, fmt.Errorf("loadbalancer support not available in this deployment")
	}
	done, err := vfs.RetryWithBackoff(readBackoff, func() (bool, error) {
		allPages, err := monitors.List(c.LoadBalancerClient(), opts).AllPages(context.TODO())
		if err != nil {
			return false, fmt.Errorf("failed to list monitors: %s", err)
		}
		monitorList, err = monitors.ExtractMonitors(allPages)
		if err != nil {
			return false, fmt.Errorf("failed to extract monitor pages: %s", err)
		}
		return true, nil
	})
	if !done {
		if err == nil {
			err = wait.ErrWaitTimeout
		}
		return monitorList, err
	}
	return monitorList, nil
}

func (c *openstackCloud) DeleteMonitor(monitorID string) error {
	return deleteMonitor(c, monitorID)

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Check the Octavia endpoint and credentials
  2. Verify the load-balancer service is healthy
  3. Retry after restoring service
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/openstack/loadbalancer.go:80 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/46d26076a474668c. Report an issue: GitHub.