 
                   {:done, _req_ref} ->
                     Map.put(acc, :done, true)
+
+                  _ ->
+                    acc
                 end
               end)
 
             if Map.get(response, :done) do
-              response = Map.drop(response, [:done])
-              {:ok, conn, response}
+              {:ok, conn, Map.drop(response, [:done])}
             else
               stream_response(conn, response)
             end
 
-          _ ->
-            {:error, "TODO: Error Handle"}
+          {:error, _conn, error, _res} ->
+            {:error, "Encounter Mint error #{inspect(error)}"}
+
+          :unknown ->
+            {:error, "Encounter unknown error"}
         end
     end
   end

    %URI{host: host, scheme: scheme, port: port, path: path, query: query} = URI.parse(env.url)
    query = (query || "") |> URI.decode_query() |> Map.to_list()
    path = Tesla.build_url(path, env.query ++ query)
    method = case env.method do
      :head -> "GET"
      m -> m |> Atom.to_string() |> String.upcase()
    end

    request(
      method,

    case next_chunk(fun) do
      {:ok, item, fun} when is_list(item) ->
        stream_request(fun, body <> List.to_string(item))

      {:ok, item, fun} ->
        stream_request(fun, body <> item)

      :eof ->
        {:ok, body, byte_size(body)}
    end
  end

