diff --git a/fluxer_gateway/src/gateway/fluxer_gateway_app.erl b/fluxer_gateway/src/gateway/fluxer_gateway_app.erl index 29aa6538..9bad932a 100644 --- a/fluxer_gateway/src/gateway/fluxer_gateway_app.erl +++ b/fluxer_gateway/src/gateway/fluxer_gateway_app.erl @@ -25,6 +25,7 @@ start(_StartType, _StartArgs) -> otel_metrics:init(), passive_sync_registry:init(), guild_counts_cache:init(), + {ok, Pid} = fluxer_gateway_sup:start_link(), Port = fluxer_gateway_env:get(port), Dispatch = cowboy_router:compile([ {'_', [ @@ -37,7 +38,7 @@ start(_StartType, _StartArgs) -> env => #{dispatch => Dispatch}, max_frame_size => 4096 }), - fluxer_gateway_sup:start_link(). + {ok, Pid}. -spec stop(term()) -> ok. stop(_State) -> diff --git a/fluxer_gateway/src/session/session_connection.erl b/fluxer_gateway/src/session/session_connection.erl index 727ce9ec..9f57bd44 100644 --- a/fluxer_gateway/src/session/session_connection.erl +++ b/fluxer_gateway/src/session/session_connection.erl @@ -67,7 +67,7 @@ handle_presence_connect(Attempt, State) -> group_dm_recipients => GroupDmRecipients, custom_status => maps:get(custom_status, State, null) }}, - case gen_server:call(presence_manager, Message, 5000) of + try gen_server:call(presence_manager, Message, 5000) of {ok, Pid} -> try_presence_session_connect( Pid, @@ -83,6 +83,13 @@ handle_presence_connect(Attempt, State) -> ); _ -> schedule_presence_retry(Attempt, State) + catch + exit:{noproc, _} -> + schedule_presence_retry(Attempt, State); + exit:{normal, _} -> + schedule_presence_retry(Attempt, State); + _:_ -> + schedule_presence_retry(Attempt, State) end. -spec try_presence_session_connect(