diff --git a/apps/emqx_plugins/src/emqx_plugins_app.erl b/apps/emqx_plugins/src/emqx_plugins_app.erl index a8b2fd6d6..740bcdd22 100644 --- a/apps/emqx_plugins/src/emqx_plugins_app.erl +++ b/apps/emqx_plugins/src/emqx_plugins_app.erl @@ -27,8 +27,8 @@ start(_Type, _Args) -> %% load all pre-configured - ok = emqx_plugins:ensure_started(), {ok, Sup} = emqx_plugins_sup:start_link(), + ok = emqx_plugins:ensure_started(), ok = emqx_config_handler:add_handler([?CONF_ROOT], emqx_plugins), {ok, Sup}. diff --git a/apps/emqx_plugins/src/emqx_plugins_serde.erl b/apps/emqx_plugins/src/emqx_plugins_serde.erl index b50258b9c..fdc46e661 100644 --- a/apps/emqx_plugins/src/emqx_plugins_serde.erl +++ b/apps/emqx_plugins/src/emqx_plugins_serde.erl @@ -33,7 +33,6 @@ init/1, handle_call/3, handle_cast/2, - handle_continue/2, terminate/2 ]). @@ -126,11 +125,10 @@ init(_) -> ]), State = #{}, AvscPaths = get_plugin_avscs(), - {ok, State, {continue, {build_serdes, AvscPaths}}}. - -handle_continue({build_serdes, AvscPaths}, State) -> + %% force build all schemas at startup + %% otherwise plugin schema may not be available when needed _ = build_serdes(AvscPaths), - {noreply, State}. + {ok, State}. handle_call({build_serdes, NameVsn, AvscPath}, _From, State) -> BuildRes = do_build_serde({NameVsn, AvscPath}),