           {:ok, %{status: status}} when status in [428, 500, 504] -> true
           {:ok, _} -> false
           {:error, _} -> true
-        end
+        end,
+        mode: :sync
     end
     ```
 

    - `:keep_original_error` - boolean to indicate if, in case of melting (based on `should_melt`), it should return the upstream's error or the fixed one `{:error, unavailable}`.
    It's false by default, but it will be true in `2.0.0` version
    - `:should_melt` - function to determine if response should melt the fuse

    ## SASL logger


      context = %{
        name: Keyword.get(opts, :name, env.__module__),
        keep_original_error: Keyword.get(opts, :keep_original_error, false),
        should_melt: Keyword.get(opts, :should_melt, &match?({:error, _}, &1)),
        mode: Keyword.get(opts, :mode, :sync)
      }

      case :fuse.ask(context.name, context.mode) do
        :ok ->
          run(env, next, context)

