# XO1304: module content does not match xo.lock

xo.lock records the content hash of every module version the build uses (and of the xo.mod of every version minimal version selection read); every build recomputes them from the cache or vendor/ and compares. A mismatch means the code changed under the same version: a tag was moved or rewritten upstream, or a cached or vendored copy was edited. Nothing is built. If the new content is expected (you control the dependency and retagged it), delete its lines from xo.lock and run `xo mod tidy`; for an edited vendor/, run `xo vendor`. See core 4.3.

## Example

```xo
# xo.lock
github.com/acme/billing v1.4.0 h1:AAAA...   # the tag now has other content
```

## Fix

```xo
# delete the stale lines, then
xo mod tidy
```

Run `xo explain XO1304` for this text in a terminal, or see
[section 10.6 of the specification](../../spec/core/#106-diagnostic-codes).

