diff --git a/arangod/GeneralServer/RestHandler.cpp b/arangod/GeneralServer/RestHandler.cpp index 8af0258261..0cb2f64fc0 100644 --- a/arangod/GeneralServer/RestHandler.cpp +++ b/arangod/GeneralServer/RestHandler.cpp @@ -457,27 +457,29 @@ void RestHandler::generateError(rest::ResponseCode code, int errorNumber, std::string const& message) { resetResponse(code); - VPackBuffer buffer; - VPackBuilder builder(buffer); - try { - builder.add(VPackValue(VPackValueType::Object)); - builder.add(StaticStrings::Code, VPackValue(static_cast(code))); - builder.add(StaticStrings::Error, VPackValue(true)); - builder.add(StaticStrings::ErrorMessage, VPackValue(message)); - builder.add(StaticStrings::ErrorNum, VPackValue(errorNumber)); - builder.close(); + if (_request->requestType() != rest::RequestType::HEAD) { + VPackBuffer buffer; + VPackBuilder builder(buffer); + try { + builder.add(VPackValue(VPackValueType::Object)); + builder.add(StaticStrings::Code, VPackValue(static_cast(code))); + builder.add(StaticStrings::Error, VPackValue(true)); + builder.add(StaticStrings::ErrorMessage, VPackValue(message)); + builder.add(StaticStrings::ErrorNum, VPackValue(errorNumber)); + builder.close(); - VPackOptions options(VPackOptions::Defaults); - options.escapeUnicode = true; + VPackOptions options(VPackOptions::Defaults); + options.escapeUnicode = true; - TRI_ASSERT(options.escapeUnicode); - if (_request != nullptr) { - _response->setContentType(_request->contentTypeResponse()); + TRI_ASSERT(options.escapeUnicode); + if (_request != nullptr) { + _response->setContentType(_request->contentTypeResponse()); + } + _response->setPayload(std::move(buffer), true, options, + /*resolveExternals*/false); + } catch (...) { + // exception while generating error } - _response->setPayload(std::move(buffer), true, options, - /*resolveExternals*/false); - } catch (...) { - // exception while generating error } }