diff --git a/lib/microwaveprop/weather/hrrr_client.ex b/lib/microwaveprop/weather/hrrr_client.ex index 6cd8895b..45a5240b 100644 --- a/lib/microwaveprop/weather/hrrr_client.ex +++ b/lib/microwaveprop/weather/hrrr_client.ex @@ -178,9 +178,13 @@ defmodule Microwaveprop.Weather.HrrrClient do Enum.map_join(ranges, ", ", fn {start, stop} -> "#{start}-#{stop}" end) case Req.get(url, [{:headers, [{"Range", "bytes=#{range_header}"}]} | req_options()]) do - {:ok, %{status: status, body: body}} when status in [200, 206] -> + {:ok, %{status: 206, body: body}} -> {:ok, body} + {:ok, %{status: 200}} -> + Logger.warning("HRRR server ignored Range header, returned full file") + {:error, "HRRR range request not supported"} + {:ok, %{status: status}} -> {:error, "HRRR grib HTTP #{status}"} diff --git a/lib/microwaveprop/workers/hrrr_fetch_worker.ex b/lib/microwaveprop/workers/hrrr_fetch_worker.ex index 2da4894f..66ebc897 100644 --- a/lib/microwaveprop/workers/hrrr_fetch_worker.ex +++ b/lib/microwaveprop/workers/hrrr_fetch_worker.ex @@ -69,6 +69,7 @@ defmodule Microwaveprop.Workers.HrrrFetchWorker do defp permanent_failure?("HRRR idx HTTP 404"), do: true defp permanent_failure?("HRRR grib HTTP 404"), do: true + defp permanent_failure?("HRRR range request not supported"), do: true defp permanent_failure?(:outside_grid), do: true defp permanent_failure?("malformed section"), do: true defp permanent_failure?("missing sections: " <> _), do: true