Please add
else {
result = IQ.createResultIQ(packet);
result.setChildElement(packet.getChildElement().createCopy());
result.setError(PacketError.Condition.item_not_found);
}
between lines 145 and 146 of IQvCardHandler.java.
With this, I get the expected “item not found” result when looking for a user that doesn’t exist. Without it, a NPE is thrown in LdapVcardProvider.java and a “internal server error” is returned.