I'm setting up new ejabberd environment using latest ejabberd version 18.09. I used to have a custom module "mod_offline_http_post_ext" to handle offline messages and the module source can be found here https://github.com/tareqassi/mod_offline_http_post_ext/blob/master/src/mod_offline_http_post_ext.erl
mod_offline_http_post_ext used to work very well with ejabberd 19.02 but now Ejabberd 19.08 failed to start due to "Failed to start ejabberd application: Invalid value of option modules: unknown ejabberd module: mod_offline_http_post_ext. Did you mean mod_offline_http_post_ext" error.
It fails even the module is added successfully through ./ejabberdctl module_install command and its shown in the list after executing ./ejabberdctl modules_installed.
I have tried to follow the instruction here https://docs.ejabberd.im/developer/extending-ejabberd/modules/ to create custom modules and added the new two functions that are now required by the gen_mod.
I have tried to follow the instruction here https://docs.ejabberd.im/developer/extending-ejabberd/modules/ to create custom modules and added the new two functions that are now required by the gen_mod.
Exactly, make sure your source code includes all the functions exported by mod_hello_world.erl I copy that file to my ejabberd/src, then I add it to ejabberd.yml, recompile ejabberd, install it, and starts correctly.
So, in your case, either you forgot to add one of those required functions... or ejabberd is still using the old *.beam file, not the updated one.
If you compile ejabberd from source code, try this: copy your module source code to ejabberd/src, recompile, reinstall, remove the module in ~/.ejabberd-modules, and restart. This is just to ensure if the problem is in the source code, or in the installation (duplicated files...)