diff options
Diffstat (limited to 'src/buildtool/serve_api/serve_service/target.cpp')
-rw-r--r-- | src/buildtool/serve_api/serve_service/target.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/buildtool/serve_api/serve_service/target.cpp b/src/buildtool/serve_api/serve_service/target.cpp index d7e48402..341b326e 100644 --- a/src/buildtool/serve_api/serve_service/target.cpp +++ b/src/buildtool/serve_api/serve_service/target.cpp @@ -67,21 +67,13 @@ auto TargetService::GetDispatchList( dispatch_info.ToString())}; } // parse content - try { - auto parsed = ParseDispatch(*dispatch_str); - if (parsed.index() == 0) { - // pass the parsing error forward - return ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION, - std::get<0>(parsed)}; - } - return std::get<1>(parsed); - } catch (std::exception const& e) { - return ::grpc::Status{::grpc::StatusCode::INTERNAL, - fmt::format("Parsing dispatch blob {} " - "unexpectedly failed with:\n{}", - dispatch_digest.hash(), - e.what())}; + auto parsed = ParseDispatch(*dispatch_str); + if (not parsed) { + // pass the parsing error forward + return ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION, + std::move(parsed).error()}; } + return *std::move(parsed); } auto TargetService::HandleFailureLog( |