cloudflare/cloudflared · error

API call to failed with status

Error message

API call to %s failed with status %d: %s

What it means

Fallback HTTP failure in RESTClient.statusCodeToError: the API responded with a status that is neither 200 nor one of the mapped sentinel statuses (400/401/403/404) and the body carried no parseable JSON errors. The error names the operation, status code, and its HTTP text (e.g. 429, 500, 502).

Solutions

  1. For 429, back off and retry — rate limited by the Cloudflare API.
  2. For 5xx, retry later; the failure is server-side.
  3. Check the operation name and status in the message before escalating.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at cfapi/base_client.go:241 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of cloudflare/cloudflared@2253eeeb25 (2026-09-06). Data as JSON: /api/errors/515299993b5d2489. Report an issue: GitHub.

Appendix: source

Thrown at cfapi/base_client.go:241

		var errorsResp response
		if json.NewDecoder(resp.Body).Decode(&errorsResp) == nil {
			if err := errorsResp.checkErrors(); err != nil {
				return errors.Errorf("Failed to %s: %s", op, err)
			}
		}
	}

	switch resp.StatusCode {
	case http.StatusOK:
		return nil
	case http.StatusBadRequest:
		return ErrBadRequest
	case http.StatusUnauthorized, http.StatusForbidden:
		return ErrUnauthorized
	case http.StatusNotFound:
		return ErrNotFound
	}
	return errors.Errorf("API call to %s failed with status %d: %s", op,
		resp.StatusCode, http.StatusText(resp.StatusCode))
}

View on GitHub (pinned to 2253eeeb25)