diff --git a/src/ejabberd_xmlrpc.erl b/src/ejabberd_xmlrpc.erl index aa37b643a..6680451e4 100644 --- a/src/ejabberd_xmlrpc.erl +++ b/src/ejabberd_xmlrpc.erl @@ -373,6 +373,10 @@ try_do_command(AccessCommands, Auth, Command, AttrL, "The call provided additional unused " "arguments:~n~p", [ExitAtL]); + exit:{invalid_arg_type, Arg, Type} -> + build_fault_response(-122, + "Parameter '~p' can't be coerced to type '~p'", + [Arg, Type]); Why -> build_fault_response(-118, "A problem '~p' occurred executing the " @@ -472,7 +476,7 @@ format_arg(undefined, binary) -> <<>>; format_arg(undefined, string) -> ""; format_arg(Arg, Format) -> ?ERROR_MSG("don't know how to format Arg ~p for format ~p", [Arg, Format]), - throw({error_formatting_argument, Arg, Format}). + exit({invalid_arg_type, Arg, Format}). process_unicode_codepoints(Str) -> iolist_to_binary(lists:map(fun(X) when X > 255 -> unicode:characters_to_binary([X]);