On 4 Sep 2019, at 16.38, R.N.S. via dovecot <dovecot@dovecot.org> wrote:

passdb {
args = /etc/dovecot/master-users
driver = passwd-file
master = yes
pass = yes
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}

...


protocol sieve {
passdb {
  args = /etc/dovecot/dovecot-ldap-incoming.conf.ext
  driver = ldap
  name =
}
}
protocol pop3 {
passdb {
  args = /etc/dovecot/dovecot-ldap-incoming.conf.ext
  driver = ldap
  name =
}
}
protocol submission {
login_greeting = ESMTP
passdb {
  args = /etc/dovecot/dovecot-ldap-outgoing.conf.ext
  driver = ldap
  name =
}
}

So the problem really is in order of things.

Your protocol specific passdbs are AFTER your global passdb. Global passdb {} returns return-ok on successful authentication and rest of the passdbs are never processed.

Sami