diff options
-rw-r--r-- | src/libstore/build.cc | 7 | ||||
-rw-r--r-- | src/libstore/local-store.cc | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index cd37f7a3fc08..96ca2874257c 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -3682,6 +3682,13 @@ void SubstitutionGoal::tryNext() } catch (InvalidPath &) { tryNext(); return; + } catch (Error & e) { + if (settings.tryFallback) { + printError(e.what()); + tryNext(); + return; + } + throw; } /* Update the total expected download size. */ diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index c91dbf241bcf..5e392c237e88 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -880,6 +880,11 @@ void LocalStore::querySubstitutablePathInfos(const PathSet & paths, narInfo ? narInfo->fileSize : 0, info->narSize}; } catch (InvalidPath) { + } catch (Error & e) { + if (settings.tryFallback) + printError(e.what()); + else + throw; } } } |