Skip to content
Latchkey

Jira "Send deployment info" 400 (deployments API) in CI

The Jira deployments API (used by the Jira GitHub action to show deploys on issues) rejects payloads with 400 when required fields like deploymentSequenceNumber, pipeline, environment, or the issue-key associations are missing or malformed.

What this error means

The "Send deployment info to Jira" step fails with HTTP 400 and a body listing invalid or missing deployment fields, so deploy status never shows on issues.

Jira deployments
HTTP/1.1 400 Bad Request
{"rejectedDeployments":[{"key":{"pipelineId":"deploy","environmentId":"prod",
"deploymentSequenceNumber":0},"errors":[{"message":"issueKeys must not be empty"}]}]}

Common causes

No issue keys associated with the deployment

The payload has an empty issueKeys/associations array because the pipeline never extracted keys from the commits or PR, so Jira rejects it.

Missing required deployment fields

The payload omits deploymentSequenceNumber, pipeline, environment, or state, which the deployments schema requires.

How to fix it

Provide keys and required fields

  1. Collect the issue keys the deploy covers and pass them as associations.
  2. Set pipeline, environment, state, and a monotonic sequence number.
  3. Re-run and confirm the deployment appears on the linked issues.
.github/workflows/ci.yml
- uses: atlassian/gajira-find-issue-key@v3
  id: find
  with:
    from: commits
# then send issueKeys: [ ABC-123 ] with pipeline/environment/state set

Use a monotonic sequence number

Deployments dedupe on deploymentSequenceNumber; use the run number or timestamp so each deploy has a fresh, increasing value.

How to prevent it

  • Always attach non-empty issue keys to deployment payloads.
  • Set all required fields: pipeline, environment, state, sequence number.
  • Use the run number as a monotonic deployment sequence.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →