portainer/portainer · error

GitHub API returned status %d: %s

Error message

GitHub API returned status %d: %s

What it means

Error "GitHub API returned status %d: %s" thrown in portainer/portainer.

Source

Thrown at api/http/proxy/factory/github/client.go:70

	url := fmt.Sprintf("%s/%s/packages?package_type=container", c.baseURL, namespace)

	req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
	if err != nil {
		return nil, fmt.Errorf("failed to create request: %w", err)
	}

	resp, err := c.httpClient.Do(req)
	if err != nil {
		return nil, fmt.Errorf("failed to execute request: %w", err)
	}
	defer func() {
		if err := resp.Body.Close(); err != nil {
			log.Warn().Err(err).Msg("failed to close response body")
		}
	}()

	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("GitHub API returned status %d: %s", resp.StatusCode, resp.Status)
	}

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		return nil, fmt.Errorf("failed to read response body: %w", err)
	}

	var packages []Package
	if err := json.Unmarshal(body, &packages); err != nil {
		return nil, fmt.Errorf("failed to parse response: %w", err)
	}

	// Extract repository names in the form "owner/name"
	repositories := make([]string, len(packages))
	for i, pkg := range packages {
		repositories[i] = fmt.Sprintf("%s/%s", strings.ToLower(pkg.Owner.Login), strings.ToLower(pkg.Name))
	}

View on GitHub (pinned to 17e74456ff)

When it happens

Trigger: Thrown at api/http/proxy/factory/github/client.go:70 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of portainer/portainer@17e74456ff (2026-08-26). Data as JSON: /api/errors/9a4a66f0c9bb2400. Report an issue: GitHub.