Skip to main content

Overview

shipd push exits 3 when the server returns 409 conflict. Nothing from that push was applied. This page explains each cause and how to fix it.

Causes

Every message is listed in Errors.

Fix a stale version

Start from what is live, then re-apply your edit.
1

Save your edits

2

Pull

shipd.config.ts and src/generated/flags.ts are rewritten from the server. Comments are lost.
3

Re-apply your edit

Compare with git stash show -p and make your change again on top of the pulled file.
4

Diff and push

The plan should contain only your change.

Reconcile Go definitions

Pull rewrites shipd.config.go directly and regenerates accessors. After resolving a stale version, inspect the Go diff and then push. See Go definitions.

Fix a pending approval

Wait for a reviewer to approve or reject the open request in the dashboard, then push again. See Approvals.

Fix an unsupported protected operation

The push mixed a definition change with a project that has an approval policy. Make the definition change in a way your policy allows, or ask an admin to adjust the policy. See Approval workflows.

—force: last resort

--force skips the version check and writes your file over whatever changed on the server. Use it only after you have read the other change and decided to discard it.
  • It is recorded in the audit log with the reason Forced CAS override.
  • It does not bypass approval policies or pending requests. Those still exit 3 or 5.
  • It does not skip permission checks.
Details: Conflicts.

Next steps