Why do we cache successful builds, but not failed builds?

Because Tolstoy said

Success builds are all alike;
every failed build is failing in its own way.


The mechanism to mark failed builds is meta.broken because a failure can happen for multiple reasons including general flakiness of a package build or the underlying kernel of the build machine.

Here’s some previous discussion on the subject: Nix caches successful builds. Why doesn't it cache unsuccessful builds?

1 Like