Search code examples
searchejabberdsmackvcf-vcard

ejabberd Search - Module failed to handle the query


I'm using this code to search user in ejabberd:

BareJid bareJid = JidCreate.bareFrom(_user_name + "@domain");
UserSearchManager sm = MainService.getUserSearchManager();
DomainBareJid sDomain = sm.getSearchServices().get(0);
Form form = sm.getSearchForm(sDomain).createAnswerForm();
form.setAnswer("user",_user_name);
ReportedData reportedData = sm.getSearchResults(form, sDomain);

but I got this error:

<iq from='vjud.mnyr' id='jeRII-100' to='admin@mnyr/rsrc' type='error' xml:lang='en'>
    <query xmlns='jabber:iq:search'>
        <x type='submit' xmlns='jabber:x:data'>
            <field type='text-single' var='user'>
                <value>1*</value>
            </field>
        </x>
    </query>
    <error code='500' type='wait'>
        <internal-server-error xmlns='urn:ietf:params:xml:ns:xmpp-stanzas' />
        <text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas' xml:lang='en'>Module failed to handle the query
        </text>
    </error>
</iq>

and in the log:

Reason = {error,{{case_clause,undefined},[{io_lib_pretty,cind_rec,6,[{file,"io_lib_pretty.erl"},{line,813}]},{io_lib_pretty,cind_record,8,[{file,"io_lib_pretty.erl"},{line,765}]},{io_lib_pretty,cind_element,7,[{file,"io_lib_pretty.erl"},{line,849}]},{io_lib_pretty,cind_list,7,[{file,"io_lib_pretty.erl"},{line,819}]},{io_lib_pretty,cind_field,7,[{file,"io_lib_pretty.erl"},{line,795}]},{io_lib_pretty,cind_fields_tail,8,[{file,"io_lib_pretty.erl"},{line,779}]},{io_lib_pretty,cind_element,7,[{file,"io_lib_pretty.erl"},{line,849}]},{io_lib_pretty,cind_list,7,[{file,"io_lib_pretty.erl"},{line,819}]}]}}

Please help me. I'm using Ejabberd v18.0.6 on MacOS using XmppFramework and Smack v4.


Solution

  • I can reproduce the problem easily. It is a small bug, that I've now fixed in this commit: https://github.com/processone/ejabberd/commit/1be21126342d503205798605725ba5ceef9de42b

    Thanks for commenting it!