Skip to content
Latchkey

Artifactory "409 Conflict" immutable / existing artifact in CI

Artifactory returned HTTP 409 because the artifact already exists and the release repository forbids overwriting it. Republishing the same version is blocked by design.

What this error means

A deploy of an already-published version fails with "409 Conflict" and a message that the repository does not allow overwriting an existing artifact.

jf
[Error] server response: 409 Conflict
{
  "errors": [ { "status": 409, "message": "The repository 'libs-release-local' rejected the artifact
'com/acme/app/1.0.0/app-1.0.0.jar' due to a conflict with an existing artifact." } ]
}

Common causes

Republishing an existing release version

Release repos are immutable by policy. Re-running a pipeline that deploys the same version hits an existing artifact and is refused.

A non-unique snapshot or missing version bump

The version was not incremented, so CI tries to write over an already-published coordinate.

How to fix it

Publish a new version

  1. Bump the artifact version so the coordinate is new.
  2. Re-run the deploy against the fresh version.
  3. Keep release deploys idempotent by never reusing a version.
Terminal
# bump the version, then deploy the new coordinate
jf rt upload "build/app-1.0.1.jar" "libs-release-local/com/acme/app/1.0.1/"

Use a snapshot repo for iterative builds

Route non-final builds to a snapshot/dev repo that permits overwrites, and only promote to the immutable release repo once.

How to prevent it

  • Treat release repositories as write-once; never republish a version.
  • Bump versions automatically per build for releases.
  • Send iterative builds to a snapshot repo that allows overwrite.

Related guides

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