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
- Retry the request with a bounded number of attempts, since transient network failures are common
- Wrap the HTTP call with a timeout (http.Client{Timeout}) to avoid stalled reads
- 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.