Nix 2.34 memoizes primop errors by default. RecoverableError uses NIX_ERR_RECOVERABLE so transient errors allow the thunk to be retried.