Mix deps.get failing with `failed to fetch package from registry` error

Here’s the error output:

→ mix deps.get
warning: the Collectable protocol is deprecated for non-empty lists. The behaviour of things like Enum.into/2 or "for" comprehensions with an :into option is incorrect when collecting into non-empty lists. If you're collecting into a non-empty keyword list, consider using Keyword.merge/2 instead. If you're collecting into a non-empty list, consider concatenating the two lists with the ++ operator.
  (elixir) lib/collectable.ex:83: Collectable.List.into/1
  (hex) lib/hex/remote_converger.ex:265: Hex.RemoteConverger.prepare_locked/3
  (hex) lib/hex/remote_converger.ex:36: Hex.RemoteConverger.converge/2
  (mix) lib/mix/dep/converger.ex:95: Mix.Dep.Converger.all/4
  (mix) lib/mix/dep/converger.ex:51: Mix.Dep.Converger.converge/4

Failed to fetch record for 'phoenix_pubsub' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'phoenix' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'phoenix_html' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'phoenix_live_reload' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'gettext' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'ecto_sql' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'postgrex' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to check for new Hex version
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}

The command elixir -v runs fine:

elixir -v
Erlang/OTP 22 [erts-10.6.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]

Elixir 1.9.4 (compiled with Erlang/OTP 22)
1 Like

Still happening the following morning.

→ traceroute repo.hex.pm
traceroute: Warning: repo.hex.pm has multiple addresses; using 151.101.66.2
traceroute to dualstack.f2.shared.global.fastly.net (151.101.66.2), 64 hops max, 52 byte packets
 1  homeportal (192.168.1.254)  5.415 ms  4.163 ms  3.496 ms
 2  108-95-168-1.lightspeed.miamfl.sbcglobal.net (108.95.168.1)  15.531 ms  9.259 ms  11.901 ms
 3  * * *
 4  12.240.208.58 (12.240.208.58)  28.572 ms  11.146 ms  7.889 ms
 5  ggr2.cgcil.ip.att.net (12.123.6.37)  7.231 ms  6.650 ms  7.180 ms
 6  * * *
 7  * * *
 8  * * *
 9  * * *
 and it goes on and on forever with just `* * *`

Anyone encounter something like this? It seems I can’t connect to Fastly’s CDN?

Fixed it by running mix local.hex first, then mix deps.get worked.

11 Likes

Worked for me as well, mix local.hex then mix deps.get

Worked like a charm! Best solution.