I’m seeing an error in my Phoenix dev environment that I’m a bit stuck on debugging. I’ve narrowed the cause down to MyApp_Web.Endpoint.ex and the long polling setting:
defmodule MyAppWeb.Endpoint do
...
@session_options [
store: :cookie,
key: "_myapp_key",
signing_salt: "<random string generated by Phoenix",
same_site: "Lax"
]
socket "/live", Phoenix.LiveView.Socket,
websocket: [connect_info: [session: @session_options]],
longpoll: [connect_info: [session: @session_options]]
end
The error is:
[info] CONNECTED TO Phoenix.LiveView.Socket in 18µs
Transport: :longpoll
Serializer: Phoenix.Socket.V2.JSONSerializer
Parameters: %{"_csrf_token" => "<redacted>", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://localhost:4000/assets/app.css", "1" => "http://localhost:4000/assets/app.js"}, "vsn" => "2.0.0"}
[error] ** (CaseClauseError) no case clause matching: {:error, {%ArgumentError{message: "unknown registry: nil"}, [{Registry, :info!, 1, [file: ~c"lib/registry.ex", line: 1391]}, {Registry, :register, 3, [file: ~c"lib/registry.ex", line: 1007]}, {Phoenix.PubSub, :subscribe, 3, [file: ~c"lib/phoenix/pubsub.ex", line: 121]}, {Phoenix.Transports.LongPoll.Server, :init, 1, [file: ~c"lib/phoenix/transports/long_poll_server.ex", line: 36]}, {:gen_server, :init_it, 2, [file: ~c"gen_server.erl", line: 2229]}, {:gen_server, :init_it, 6, [file: ~c"gen_server.erl", line: 2184]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]}]}}
(phoenix 1.7.14) lib/phoenix/transports/long_poll.ex:145: Phoenix.Transports.LongPoll.new_session/4
(myapp 0.1.0) lib/myapp_web/endpoint.ex:1: myappWeb.Endpoint.do_socket_dispatch/2
(myapp 0.1.0) lib/myapp_web/endpoint.ex:1: myappWeb.Endpoint.plug_builder_call/2
(myapp 0.1.0) deps/plug/lib/plug/debugger.ex:136: myappWeb.Endpoint."call (overridable 3)"/2
(myapp 0.1.0) lib/myapp_web/endpoint.ex:1: myappWeb.Endpoint.call/2
(phoenix 1.7.14) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4
(bandit 1.6.0) lib/bandit/pipeline.ex:127: Bandit.Pipeline.call_plug!/2
(bandit 1.6.0) lib/bandit/pipeline.ex:36: Bandit.Pipeline.run/4
(bandit 1.6.0) lib/bandit/http1/handler.ex:12: Bandit.HTTP1.Handler.handle_data/3
(bandit 1.6.0) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3
(bandit 1.6.0) <folder>/myapp/deps/thousand_island/lib/thousand_island/handler.ex:417: Bandit.DelegatingHandler.handle_continue/2
(stdlib 6.1.2) gen_server.erl:2335: :gen_server.try_handle_continue/3
(stdlib 6.1.2) gen_server.erl:2244: :gen_server.loop/7
(stdlib 6.1.2) proc_lib.erl:329: :proc_lib.init_p_do_apply/3
The actual error is "unknown registry: nil"
- what could cause this? No difference when adding Phoenix.PubSub, name: MyApp.PubSub}
to MyApp.Application.ex.