Skip to content

LDAP / eldap error: Correct multiple ldap_uids format / Domain component? #4529

@hvostat

Description

@hvostat

Hello dear eJabberD team,
I can not solve the issue by myself so I would like to ask for some help.

My environment:

  • ejabberd version: 25.04
  • OS: Linux (Debian 12, Docker v.20.10.24)
  • Installed from: ghcr.io/processone/ejabberd:25:04

Configuration

[...]
auth_method: [ldap]
ldap_servers:
  - "ldap.domain.de"
ldap_encrypt: none

ldap_base: "o=company,c=de"
ldap_filter: "(|(client_type=AAA)(mailType=BBB)(client_type=CCC))"

ldap_rootdn: "cn=aaa,ou=services,o=domain,c=de"
ldap_password: "**********"

ldap_uids:
  "mail": "%u@domain.de"
[...]

Overvew

After upgrading EJD to v.24.04 from v.18 the format of the LDAP configuration has changed.

The first issue I have encountered was solved:
#3065

Unfortunately right after start Ejabbed start to flood with tons of errors then crashes:

2026-02-05T00:08:27.820029+00:00 error: FORMATTER CRASH: {report,#{label => {erl_prim_loader,file_error},report => "File operation error: emfile. Target: ./erl_posix_msg.beam. Function: read_file. Process: code_server."}}
2026-02-05T00:08:27.820338+00:00 error: FORMATTER CRASH: {report,#{args => ['eldap_#Ref<0.2172095014.1369178119.122311>',timeout,connecting,{eldap,3,[<<"ldap.domain.de">>],undefined,389,gen_tcp,none,[{verify,verify_none}],undefined,<<"cn=mail,ou=services,o=domain,c=de">>,<<"*******">>,0,#Ref<0.2172095014.1369178119.122313>,{dict,0,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}},{[],[]}},{undef,[{erl_posix_msg,message,[emfile],[]},{eldap,format_error,2,[{file,"src/eldap.erl"},{line,1136}]},{eldap,connect_bind,1,[{file,"src/eldap.erl"},{line,1093}]},{eldap,connecting,2,[{file,"src/eldap.erl"},{line,620}]},{p1_fsm,handle_msg,10,[{file,"/ejabberd/deps/p1_utils/src/p1_fsm.erl"},{line,582}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,329}]}]}],label => {error_logger,error_msg},format => "** State machine ~p terminating \n** Last event in was ~p~n** When State == ~p~n**      Data  == ~p~n** Reason for termination = ~n** ~p~n"}}
2026-02-05T00:08:27.862728+00:00 error: FORMATTER CRASH: {report,#{label => {erl_prim_loader,file_error},report => "File operation error: emfile. Target: /opt/ejabberd-25.04/lib/elixir-1.18.3/ebin/Elixir.Inspect.Algebra.beam. Function: read_file. Process: eldap_#Ref<0.2172095014.1369178119.122919>."}}

Question 1

What can I do with the bug above?

Obv, I have successfully tested the LDAP connection before starting Ejabberd.

(Ejabberd v.18 runs without any problems.)

Question 2

The old ldap_uids config looked like this:

[...]
ldap_uids: 
  - "mail": "%u@%d"
  - "aliase": "%u@%d"
[...]

What's the correct way now to config the ability for users to be able to:

  • authenticate by BOTH primary email and the alias
  • use several domains (that's why we are using the %d variable, but I can not see it now in the documentation)

Many thanks in advance!

Best,
Den

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions