Q:

Call to i:im() in application debugger failed in mongooseim

It seems invoking im(). after invoking ./bin/mongooseim debug shell fails with message "call to i:im/0 in application debugger fails". However, when I do it typical Erlang shell, it opens up the window correctly. Any idea why ? 

A:

There is several reasons starting debugger graphical interface could fails:

you are debugging a remote server and the server cannot display its UI on your local computer through SSH.
You are missing access to some Erlang components in the context of ejabberd.

As an example, I tried on my local computer and it worked fine:
$ ./ejabberdctl debug
...
Erlang/OTP 17 [erts-6.4] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:true]

Eshell V6.4  (abort with ^G)
(ejabberd@localhost)1> i:im().
<0.464.0>

It even worked with ejabberd binary installer after adding the debugger component for Erlang R17B-5 in INSTALLER_DIR/lib/.
The component you need to add to binary installer to use the graphical debugger are: debugger and wx. Just copied those two dir and it worked.

