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.
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
- Collect the issue keys the deploy covers and pass them as associations.
- Set pipeline, environment, state, and a monotonic sequence number.
- Re-run and confirm the deployment appears on the linked issues.
- uses: atlassian/gajira-find-issue-key@v3
id: find
with:
from: commits
# then send issueKeys: [ ABC-123 ] with pipeline/environment/state setUse 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.