DVC "md5 ... changed" WARNING in CI
DVC recomputed the checksum of a tracked file and it differs from the md5 stored in the .dvc metadata, so it warns that the data changed. In CI this usually means the file was regenerated or altered after checkout.
What this error means
dvc status or a stage prints "WARNING: md5 ... changed" or lists tracked data as "modified", and downstream stages rerun or fail a consistency check.
WARNING: md5 of 'data/train.csv' changed, updating...
data/train.csv:
changed checksumCommon causes
The file was regenerated after checkout
A build step rewrote the tracked file, so its content hash no longer matches the committed .dvc record.
Line-ending or filter changes altered the bytes
A CRLF conversion or other filter changed the file on checkout, shifting its md5.
How to fix it
Pull instead of regenerating tracked data
- Do not rebuild data that DVC already tracks in CI; pull it instead.
- If the change is intentional,
dvc addand commit the new pointer. - Re-run so status is clean.
dvc pull
dvc statusStop filters from altering tracked files
Treat tracked data as binary so line-ending filters do not change its hash.
data/** -textHow to prevent it
- Pull DVC-tracked data in CI rather than regenerating it.
- Mark tracked data as binary to avoid filter-driven hash drift.
- Commit updated
.dvcpointers whenever data legitimately changes.