diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc index 23c844e3f..9f51d90d9 100644 --- a/src/libstore/globals.cc +++ b/src/libstore/globals.cc @@ -313,7 +313,11 @@ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Settings::ExternalBuilder, systems, program, template<> Settings::ExternalBuilders BaseSetting::parse(const std::string & str) const { - return nlohmann::json::parse(str).template get(); + try { + return nlohmann::json::parse(str).template get(); + } catch (std::exception & e) { + throw UsageError("parsing setting '%s': %s", name, e.what()); + } } template<> std::string BaseSetting::to_string() const