sbt/notes/2.0.0
Brian Hotopp 6a00cc1013 [2.x] fix: Report a missing input file clearly instead of an opaque SerializationException
When a file referenced by a task's inputs/outputs (e.g. `Compile / resources +=
file("nope.txt")`) does not exist, hashing the task's cache key threw a
NoSuchFileException deep inside sjsonnew serialization. It surfaced as an opaque
sjsonnew.SerializationException that dumped the entire input list, with the real
cause buried several `Caused by:` levels down, so users routinely mistook it for
a corrupt cache and reached for `clean`.

ActionCache.mkInput now catches the hashing failure, detects a NoSuchFileException
anywhere in the cause chain (ActionCache.findMissingFile), and throws a
MessageOnlyException naming the file:

    [error] file referenced by the build does not exist: nope.txt

util-cache gains a dependency on util-control (a leaf module, no cycle) for
MessageOnlyException.

Fixes #9217.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-28 21:21:33 -04:00
..
cache-version.md [2.x] feat: Add cacheVersion setting for global cache invalidation (#8993) 2026-04-01 11:23:10 +09:00
dependency-tree-dedup.md [2.x] fix: Collapse duplicate subtrees in dependency tree rendering (#9226) 2026-05-18 19:15:47 -04:00
migration.md [sbt 2.x] remote cache (#7464) 2024-02-07 10:34:06 -05:00
missing-file-error.md [2.x] fix: Report a missing input file clearly instead of an opaque SerializationException 2026-05-28 21:21:33 -04:00
parallel-dependency-resolution.md [2.x] fix: Parallelize dependency resolution when no progress bar is rendered (#9270) 2026-05-28 15:31:38 -04:00
remote-project-update.md [2.x] fix: addressing review comments 2026-03-13 09:34:32 +03:00