I also tried Thai characters which also crashed on startup. It seemed some non-ASCII Latin characters passed.
2026-04-03 19:55:31.393837+07:00 [critical] <0.119.0>@ejabberd_app:start/2:79 Failed to start ejabberd application: Exception occurred during configuration processing. This is most likely due to faulty/incompatible validator in third-party code. If you are not running any third-party code, please report the bug with ejabberd configuration file attached and the following stacktrace included:
** exception error: bad argument
in function iolist_to_binary/1
called as iolist_to_binary([116,111,97,115,116,97,108,8217,115,32,88,77,
80,80,32,83,101,114,118,101,114,32,105,110,
32,84,104,97,105,108,97,110,100])
*** argument 1: not an iodata term
in call from ejabberd_config:replace_keywords/3 (/build/source/src/ejabberd_config.erl:440)
in call from yconf:'-and_then/2-fun-0-'/3 (yconf.erl:620)
in call from yconf:validate_option/3 (yconf.erl:1281)
in call from yconf:validate_options/8 (yconf.erl:1258)
in call from yconf:'-and_then/2-fun-0-'/3 (yconf.erl:620)
in call from yconf:validate_option/3 (yconf.erl:1281)
in call from yconf:validate_options/8 (yconf.erl:1258)
The world has a beautiful tapestry of writing scripts (including punctuation), but many can’t be used in the invite page’s site name.
Environment
Configuration (only if needed): grep -Ev '^$|^\s*#' ejabberd.yml
I also tried Thai characters which also crashed on startup. It seemed some non-ASCII Latin characters passed.
Errors from error.log/crash.log
Bug description
The world has a beautiful tapestry of writing scripts (including punctuation), but many can’t be used in the invite page’s site name.