private static async Task FlushResponseAsync(HttpResponse httpResponse, JsonSerializerSettings serializerSettings, Error error) { httpResponse.StatusCode = (int)error.StatusCode; JsonSerializer serializer = JsonSerializer.CreateDefault(serializerSettings); serializer.ApplyErrorSettings(); // https://github.com/JamesNK/Newtonsoft.Json/issues/1193 await using (var stream = new MemoryStream()) { await using (var streamWriter = new StreamWriter(stream, leaveOpen: true)) { using var jsonWriter = new JsonTextWriter(streamWriter); serializer.Serialize(jsonWriter, new ErrorDocument(error)); } stream.Seek(0, SeekOrigin.Begin); await stream.CopyToAsync(httpResponse.Body); } httpResponse.Body.Flush(); }