wtfutil/wtf · error

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

Error message

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

What it means

Raised in jiraPostRequest when a POST to the JIRA API returns a non-2xx status: includes the HTTP status, response body, and URL. Used by JQL conversion; typically fires on authentication failure, malformed request payload, or server-side rejection.

Source

Thrown at modules/jira/client.go:358

	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 POST 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 getProjectQuery(projects []string) string {
	singleEmptyProject := len(projects) == 1 && projects[0] == ""
	if len(projects) == 0 || singleEmptyProject {
		return ""
	} else if len(projects) == 1 {
		return buildJql("project", projects[0])
	}

View on GitHub (pinned to bb838c1ccb)

Solutions

  1. Verify JIRA credentials and that the token has permission for the endpoint
  2. Inspect the response body in the error message for JIRA's rejection reason
  3. Check that the POST payload matches the API version of the configured JIRA instance (Cloud vs Server)
  4. Retry later if the status indicates a server-side (5xx) issue
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at modules/jira/client.go:358 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/18b62c604d8c3f50. Report an issue: GitHub.