Handler {Phoenix.Logger, [:phoenix, :socket_connected]} has failed and has been detached. Class=:error Reason=:function_clause

After starting phoenix app I get this error

[error] Handler {Phoenix.Logger, [:phoenix, :socket_connected]} has failed and has been detached. Class=:error
Reason=:function_clause
Stacktrace=[
  {:logger_config, :less_or_equal_level, [true, 7],
   [file: 'logger_config.erl', line: 75]},
  {Logger, :__should_log__, 2, [file: 'lib/logger.ex', line: 874]},
  {Phoenix.Logger, :phoenix_socket_connected, 4,
   [file: 'lib/phoenix/logger.ex', line: 306]},
  {:telemetry, :"-execute/3-fun-0-", 4,
   [
     file: '/backend/deps/telemetry/src/telemetry.erl',
     line: 135
   ]},
  {:lists, :foreach_1, 2, [file: 'lists.erl', line: 1442]},
  {Phoenix.Socket, :__connect__, 3, [file: 'lib/phoenix/socket.ex', line: 485]},
  {Phoenix.Transports.WebSocket, :call, 2,
   [file: 'lib/phoenix/transports/websocket.ex', line: 58]},
  {AdminWeb.Endpoint, :do_socket_dispatch, 2,
   [file: 'lib/admin_web/endpoint.ex', line: 1]},
  {AdminWeb.Endpoint, :plug_builder_call, 2,
   [file: 'lib/admin_web/endpoint.ex', line: 1]},
  {AdminWeb.Endpoint, :"call (overridable 3)", 2,
   [file: 'lib/plug/debugger.ex', line: 136]},
  {AdminWeb.Endpoint, :call, 2, [file: 'lib/admin_web/endpoint.ex', line: 1]},
  {Plug.Cowboy.Handler, :init, 2,
   [file: 'lib/plug/cowboy/handler.ex', line: 11]},
  {:cowboy_handler, :execute, 2,
   [
     file: '/backend/deps/cowboy/src/cowboy_handler.erl',
     line: 37
   ]},
  {:cowboy_stream_h, :execute, 3,
   [
     file: '/backend/deps/cowboy/src/cowboy_stream_h.erl',
     line: 306
   ]},
  {:cowboy_stream_h, :request_process, 3,
   [
     file: '/backend/deps/cowboy/src/cowboy_stream_h.erl',
     line: 295
   ]},
  {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 240]}
]
1 Like

Hi @apoorv-2204 please provide information your elixir, erlang, and Phoenix versions.

Dependency              Current  Latest  Status               
absinthe                1.7.4    1.7.4   Up-to-date           
absinthe_relay          1.5.2    1.5.2   Up-to-date           
appsignal               2.7.5    2.7.6   Update possible      
appsignal_phoenix       2.3.3    2.3.4   Update possible      
aws                     0.13.3   0.13.3  Up-to-date           
bcrypt_elixir           3.0.1    3.0.1   Up-to-date           
bypass                  2.1.0    2.1.0   Up-to-date           
calendar                1.0.0    1.0.0   Up-to-date           
chartkick               1.0.0    1.0.0   Up-to-date           
comeonin                5.3.3    5.3.3   Up-to-date           
corsica                 2.0.0    2.0.0   Up-to-date           
credo                   1.7.0    1.7.0   Up-to-date           
csv                     3.0.5    3.0.5   Up-to-date           
dataloader              1.0.10   1.0.10  Up-to-date           
dialyxir                1.3.0    1.3.0   Up-to-date           
ecto                    3.10.3   3.10.3  Up-to-date           
ecto_enum               1.4.0    1.4.0   Up-to-date           
ecto_sql                3.10.1   3.10.1  Up-to-date           
entropy_string          1.3.4    1.3.4   Up-to-date           
ex_aws                  2.4.3    2.4.3   Up-to-date           
ex_aws_s3               2.4.0    2.4.0   Up-to-date           
ex_doc                  0.29.4   0.30.1  Update not possible  
ex_json_schema          0.7.4    0.9.3   Update not possible  
excoveralls             0.16.1   0.16.1  Up-to-date           
faker                   0.17.0   0.17.0  Up-to-date           
floki                   0.34.3   0.34.3  Up-to-date           
gettext                 0.22.3   0.22.3  Up-to-date           
guardian                2.3.1    2.3.1   Up-to-date           
hackney                 1.18.1   1.18.1  Up-to-date           
hammox                  0.6.1    0.7.0   Update possible      
httpoison               2.1.0    2.1.0   Up-to-date           
jason                   1.4.1    1.4.1   Up-to-date           
json_xema               0.6.1    0.6.1   Up-to-date           
oban                    2.6.1    2.15.2  Update not possible  
phoenix                 1.7.6    1.7.7   Update not possible  
phoenix_ecto            4.4.2    4.4.2   Up-to-date           
phoenix_html            3.3.1    3.3.1   Up-to-date           
phoenix_live_dashboard  0.8.0    0.8.0   Up-to-date           
phoenix_live_reload     1.4.1    1.4.1   Up-to-date           
phoenix_live_view       0.19.3   0.19.4  Update possible      
phoenix_pubsub          2.1.3    2.1.3   Up-to-date           
phoenix_swagger         0.8.3    0.8.3   Up-to-date           
phoenix_view            2.0.2    2.0.2   Up-to-date           
plug                    1.14.2   1.14.2  Up-to-date           
plug_cowboy             2.6.1    2.6.1   Up-to-date           
poison                  3.1.0    5.0.0   Update not possible  
postgrex                0.17.1   0.17.1  Up-to-date           
recaptcha               3.0.0    3.1.0   Update possible      
recase                  0.7.0    0.7.0   Up-to-date           
reverse_proxy_plug      2.2.0    2.2.0   Up-to-date           
sobelow                 0.12.2   0.12.2  Up-to-date           
sweet_xml               0.7.3    0.7.3   Up-to-date           
telemetry_metrics       0.6.1    0.6.1   Up-to-date           
telemetry_poller        0.5.1    1.0.0   Update not possible  
temp                    0.4.7    0.4.7   Up-to-date           
timex                   3.7.11   3.7.11  Up-to-date           
workos                  0.1.3    0.3.0   Update not possible  
wormwood                0.1.3    0.1.3   Up-to-date      

elixir 1.14.1-otp-25
erlang 25.2.2

What does your logger config look like? This error suggests that it’s trying to set the level to something that Erlang doesn’t understand:

1 Like

config.exs

config :logger, :console,
  format: "$time $metadata[$level] $message\n",
  metadata: [:request_id]

dev.exs

config :logger, :console,
  level: :warning,
  format: "[$level] $message\n"

prod

config :logger, level: :info

test

# capture all logs...
config :logger, level: :debug
# ... but show only warnings and up on the console
config :logger, :console, level: :error

The arguments in this line from the stacktrace (3rd element):

  {:logger_config, :less_or_equal_level, [true, 7], [file: 'logger_config.erl', line: 75]},

Are supposed to be:

  • the level passed to Logger.log, expected to be one of the level atoms
  • the level set in the Logger’s config, an integer from this set

Is there a log: true someplace in your config? Maybe around either the endpoint or websockets?

1 Like

Yup found it

  socket "/admin/live", Phoenix.LiveView.Socket,
    websocket: [connect_info: [session: @session_options], log: true]