Keep getting the error: function :ssl.cipher_suites/1 is undefined or private

Environment:

MX-Linux 19
Debian GNU/Linux 10 (buster)
Elixir 1.12.0 (compiled with Erlang/OTP 24)

Problem:

Recently upgraded to the latest Elixir and tried to upgrade to the latest version of Phoenix generator with:
mix archive.install hex phx_new 1.5.9

and I keep getting these errors (full log):

18:30:11.084 [error] Task #PID<0.161.0> started from Hex.UpdateChecker terminating
** (UndefinedFunctionError) function :ssl.cipher_suites/1 is undefined or private
    (ssl 10.4) :ssl.cipher_suites(:openssl)
    (hex 0.20.6) lib/hex/http/ssl.ex:124: Hex.HTTP.SSL.filter_ciphers/1
    (hex 0.20.6) lib/hex/http/ssl.ex:66: Hex.HTTP.SSL.ssl_opts/1
    (hex 0.20.6) lib/hex/http.ex:41: Hex.HTTP.build_http_opts/2
    (hex 0.20.6) lib/hex/http.ex:16: Hex.HTTP.request/5
    (hex 0.20.6) lib/hex/update_checker.ex:31: anonymous fn/0 in Hex.UpdateChecker.handle_cast/2
    (elixir 1.12.0) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
    (elixir 1.12.0) lib/task/supervised.ex:35: Task.Supervised.reply/5
Function: #Function<0.54093280/0 in Hex.UpdateChecker.handle_cast/2>
    Args: []

18:30:11.084 [error] Task #PID<0.162.0> started from :hex_fetcher terminating
** (UndefinedFunctionError) function :ssl.cipher_suites/1 is undefined or private
    (ssl 10.4) :ssl.cipher_suites(:openssl)
    (hex 0.20.6) lib/hex/http/ssl.ex:124: Hex.HTTP.SSL.filter_ciphers/1
    (hex 0.20.6) lib/hex/http/ssl.ex:66: Hex.HTTP.SSL.ssl_opts/1
    (hex 0.20.6) lib/hex/http.ex:41: Hex.HTTP.build_http_opts/2
    (hex 0.20.6) lib/hex/http.ex:16: Hex.HTTP.request/5
    (hex 0.20.6) lib/hex/registry/server.ex:306: anonymous fn/3 in Hex.Registry.Server.prefetch_online/2
    (elixir 1.12.0) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
    (elixir 1.12.0) lib/task/supervised.ex:35: Task.Supervised.reply/5
Function: #Function<17.79564921/0 in Hex.Registry.Server.prefetch_online/2>
    Args: []
** (exit) exited in: GenServer.call(Hex.Registry.Server, {:versions, "hexpm", "phx_new"}, 60000)
    ** (EXIT) time out
    (elixir 1.12.0) lib/gen_server.ex:1024: GenServer.call/3
    (hex 0.20.6) lib/hex/remote_converger.ex:182: Hex.RemoteConverger.verify_package_req/4
    (elixir 1.12.0) lib/enum.ex:930: Enum."-each/2-lists^foreach/1-0-"/2
    (hex 0.20.6) lib/hex/remote_converger.ex:172: Hex.RemoteConverger.verify_input/2
    (hex 0.20.6) lib/hex/remote_converger.ex:42: Hex.RemoteConverger.converge/2
    (mix 1.12.0) lib/mix/dep/converger.ex:95: Mix.Dep.Converger.all/4
    (mix 1.12.0) lib/mix/dep/converger.ex:51: Mix.Dep.Converger.converge/4
    (mix 1.12.0) lib/mix/dep/fetcher.ex:16: Mix.Dep.Fetcher.all/3

Same error happens when trying to mix deps.update --all inside a Phoenix project.
How can I debug/fix this issue?

4 Likes

Sorry for buzz. This issue is solved by running:
mix local.hex

Just leaving here for posterity.

35 Likes
11:17:40.972 [error] Task #PID<0.175.0> started from Hex.UpdateChecker terminating
** (UndefinedFunctionError) function :ssl.cipher_suites/1 is undefined or private
    (ssl 10.4) :ssl.cipher_suites(:openssl)
    (hex 0.20.6) lib/hex/http/ssl.ex:124: Hex.HTTP.SSL.filter_ciphers/1
    (hex 0.20.6) lib/hex/http/ssl.ex:66: Hex.HTTP.SSL.ssl_opts/1
    (hex 0.20.6) lib/hex/http.ex:41: Hex.HTTP.build_http_opts/2
    (hex 0.20.6) lib/hex/http.ex:16: Hex.HTTP.request/5
    (hex 0.20.6) lib/hex/update_checker.ex:31: anonymous fn/0 in Hex.UpdateChecker.handle_cast/2
    (elixir 1.12.0) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
    (elixir 1.12.0) lib/task/supervised.ex:35: Task.Supervised.reply/5
Function: #Function<0.54093280/0 in Hex.UpdateChecker.handle_cast/2>
    Args: []

11:17:40.989 [error] Task #PID<0.176.0> started from :hex_fetcher terminating
** (UndefinedFunctionError) function :ssl.cipher_suites/1 is undefined or private
    (ssl 10.4) :ssl.cipher_suites(:openssl)
    (hex 0.20.6) lib/hex/http/ssl.ex:124: Hex.HTTP.SSL.filter_ciphers/1
    (hex 0.20.6) lib/hex/http/ssl.ex:66: Hex.HTTP.SSL.ssl_opts/1
    (hex 0.20.6) lib/hex/http.ex:41: Hex.HTTP.build_http_opts/2
    (hex 0.20.6) lib/hex/http.ex:16: Hex.HTTP.request/5
    (hex 0.20.6) lib/hex/registry/server.ex:306: anonymous fn/3 in Hex.Registry.Server.prefetch_online/2
    (elixir 1.12.0) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
    (elixir 1.12.0) lib/task/supervised.ex:35: Task.Supervised.reply/5
Function: #Function<17.79564921/0 in Hex.Registry.Server.prefetch_online/2>
    Args: []

11:17:40.990 [error] Task #PID<0.182.0> started from :hex_fetcher terminating
** (UndefinedFunctionError) function :ssl.cipher_suites/1 is undefined or private
    (ssl 10.4) :ssl.cipher_suites(:openssl)
    (hex 0.20.6) lib/hex/http/ssl.ex:124: Hex.HTTP.SSL.filter_ciphers/1
    (hex 0.20.6) lib/hex/http/ssl.ex:66: Hex.HTTP.SSL.ssl_opts/1
    (hex 0.20.6) lib/hex/http.ex:41: Hex.HTTP.build_http_opts/2
    (hex 0.20.6) lib/hex/http.ex:16: Hex.HTTP.request/5
    (hex 0.20.6) lib/hex/registry/server.ex:306: anonymous fn/3 in Hex.Registry.Server.prefetch_online/2
    (elixir 1.12.0) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
    (elixir 1.12.0) lib/task/supervised.ex:35: Task.Supervised.reply/5
Function: #Function<17.79564921/0 in Hex.Registry.Server.prefetch_online/2>
    Args: []

11:17:40.990 [error] Task #PID<0.181.0> started from :hex_fetcher terminating
** (UndefinedFunctionError) function :ssl.cipher_suites/1 is undefined or private
    (ssl 10.4) :ssl.cipher_suites(:openssl)
    (hex 0.20.6) lib/hex/http/ssl.ex:124: Hex.HTTP.SSL.filter_ciphers/1
    (hex 0.20.6) lib/hex/http/ssl.ex:66: Hex.HTTP.SSL.ssl_opts/1
    (hex 0.20.6) lib/hex/http.ex:41: Hex.HTTP.build_http_opts/2
    (hex 0.20.6) lib/hex/http.ex:16: Hex.HTTP.request/5
    (hex 0.20.6) lib/hex/registry/server.ex:306: anonymous fn/3 in Hex.Registry.Server.prefetch_online/2
    (elixir 1.12.0) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
    (elixir 1.12.0) lib/task/supervised.ex:35: Task.Supervised.reply/5
Function: #Function<17.79564921/0 in Hex.Registry.Server.prefetch_online/2>
    Args: []

i was getting this when i was running the mix deps.get.
The error occurred when i installed openSSL after installing TOR.

Thank you! saved me a lot of time

3 Likes

The /0 and /1 versions were deprecated in OTP 21. Work-around here:

thx!! save me too.