wtfutil/wtf · error

JIRA API error - %s: %s (URL: %s)

Error message

JIRA API error - %s: %s (URL: %s)

What it means

Raised in jiraRequest when the JIRA REST API returns a non-2xx status: the error carries the HTTP status line, the raw response body, and the request URL. Fires for authentication failures (401/403), missing resources (404), bad JQL (400), rate limiting, and server errors.

Source

Thrown at modules/jira/client.go:315

	httpClient := &http.Client{
		Transport: &http.Transport{
			TLSClientConfig: &tls.Config{
				InsecureSkipVerify: !widget.settings.verifyServerCertificate,
			},
			Proxy: http.ProxyFromEnvironment,
		},
	}

	resp, err := httpClient.Do(req)
	if err != nil {
		return nil, err
	}
	defer func() { _ = resp.Body.Close() }()

	if resp.StatusCode < 200 || resp.StatusCode > 299 {
		body, _ := io.ReadAll(resp.Body)
		return nil, fmt.Errorf("JIRA API error - %s: %s (URL: %s)", resp.Status, string(body), url)
	}

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		return nil, err
	}

	return body, nil
}

func (widget *Widget) jiraPostRequest(path string, data []byte) ([]byte, error) {
	url := fmt.Sprintf("%s%s", widget.settings.domain, path)

	req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
	if err != nil {
		return nil, err
	}

View on GitHub (pinned to bb838c1ccb)

Solutions

  1. Check the JIRA credentials (API token / username) are valid for the configured host
  2. Inspect the response body included in the error — JIRA usually explains the problem there
  3. Validate the JQL query and project/issue identifiers
  4. Check for rate limiting or Atlassian status page incidents
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at modules/jira/client.go:315 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of wtfutil/wtf@bb838c1ccb (2026-09-03). Data as JSON: /api/errors/d924bca096d753ab. Report an issue: GitHub.