Netflix/chaosmonkey · error

failed to read body of server groups url (%s): body: '%s': %

Error message

failed to read body of server groups url (%s): body: '%s': %v

What it means

Raised in Spinnaker.asgs when ioutil.ReadAll fails while reading the response body of the server-groups request, meaning the Spinnaker response stream was interrupted (connection reset, timeout, or truncation) before the full JSON payload arrived.

Source

Thrown at spinnaker/spinnaker.go:447

}

// asgs returns a slice of autoscaling groups associated with the given cluster
func (s Spinnaker) asgs(appName, account, clusterName string) (result []spinnakerServerGroup, err error) {
	url := s.serverGroupsURL(appName, account, clusterName)
	resp, err := s.client.Get(url)
	if err != nil {
		return nil, fmt.Errorf("failed to retrieve server groups url (%s): %v", url, err)
	}

	defer func() {
		if cerr := resp.Body.Close(); cerr != nil && err == nil {
			err = fmt.Errorf("failed to close response body of %s: %v", url, err)
		}
	}()

	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		return nil, fmt.Errorf("failed to read body of server groups url (%s): body: '%s': %v", url, string(body), err)
	}

	// Example:
	/*
		[
		  {
		    "name": "abc-prod-v016",
		    "region": "us-east-1",
		    "zones": [
		      "us-east-1c",
		      "us-east-1d",
		      "us-east-1e"
		    ],
		    "disabled": false,
		    "instances": [
		      {
		        "name": "i-f9ffb752",
				...

View on GitHub (pinned to eaa28fb761)

Solutions

  1. Retry the request with a bounded number of attempts, since transient network failures are common
  2. Wrap the HTTP call with a timeout (http.Client{Timeout}) to avoid stalled reads
  3. Check Spinnaker endpoint health and network connectivity if failures persist
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at spinnaker/spinnaker.go:447 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Netflix/chaosmonkey@eaa28fb761 (2026-09-03). Data as JSON: /api/errors/bf86e05709abf9a1. Report an issue: GitHub.