diff --git a/apps/emqx_conf/src/emqx_conf_cli.erl b/apps/emqx_conf/src/emqx_conf_cli.erl index 257cc7453..f2b9d63b0 100644 --- a/apps/emqx_conf/src/emqx_conf_cli.erl +++ b/apps/emqx_conf/src/emqx_conf_cli.erl @@ -237,6 +237,12 @@ load_config(Bin, Opts) when is_binary(Bin) -> case hocon:binary(Bin) of {ok, RawConf} -> load_config_from_raw(RawConf, Opts); + %% Type is scan_error, parse_error... + {error, {Type, Meta = #{reason := Reason}}} -> + {error, Meta#{ + reason => unicode:characters_to_binary(Reason), + type => Type + }}; {error, Reason} -> {error, Reason} end. diff --git a/apps/emqx_management/src/emqx_mgmt_api_configs.erl b/apps/emqx_management/src/emqx_mgmt_api_configs.erl index 75341facc..56e1f9bc1 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_configs.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_configs.erl @@ -364,10 +364,10 @@ configs(get, #{query_string := QueryStr, headers := Headers}, _Req) -> {error, _} = Error -> {400, #{code => 'INVALID_ACCEPT', message => ?ERR_MSG(Error)}} end; configs(put, #{body := Conf, query_string := #{<<"mode">> := Mode} = QS}, _Req) -> - IngnoreReadonly = maps:get(<<"ignore_readonly">>, QS, false), + IgnoreReadonly = maps:get(<<"ignore_readonly">>, QS, false), case emqx_conf_cli:load_config(Conf, #{ - mode => Mode, log => none, ignore_readonly => IngnoreReadonly + mode => Mode, log => none, ignore_readonly => IgnoreReadonly }) of ok ->