Skip to content
Latchkey

SwiftPM "Package.resolved file is corrupted or malformed" in CI

SwiftPM reads Package.resolved as JSON to pin exact revisions. This error means it could not parse the file: a leftover merge conflict marker, a truncated write, or an unexpected schema version.

What this error means

Resolution or build fails with "the Package.resolved file is corrupted or malformed; fix or delete the file to continue".

swift
error: the Package.resolved file is corrupted or malformed; fix or delete the file to continue: unknown 'PinsStorage' version '3' for the resolved file

Common causes

A leftover git merge conflict in the file

Conflict markers left in Package.resolved after a merge make it invalid JSON, so SwiftPM cannot parse it.

A schema version the runner SwiftPM does not know

A newer SwiftPM wrote a Package.resolved version the older runner toolchain cannot read.

How to fix it

Regenerate the resolved file

  1. Delete the corrupted Package.resolved.
  2. Run swift package resolve to write a fresh one.
  3. Commit the regenerated file.
Terminal
rm Package.resolved
swift package resolve
git add Package.resolved

Align the SwiftPM version across machines

If the schema version is unknown, use the same Xcode/Swift locally and in CI so the resolved format is compatible.

Terminal
swift --version

How to prevent it

  • Resolve merge conflicts in Package.resolved by regenerating, not hand-editing.
  • Keep local and CI SwiftPM versions aligned to share one resolved schema.
  • Review Package.resolved diffs so accidental truncation is caught.

Related guides

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