Hi,
Just wanted to say thanks for the help and input and while I never
really solved the issue, I jumped up to use v2.4.2 instead and at lest
then I didn't have this issue anymore.
//Kim
On 2026-01-24 10:03, John Fawcett via dovecot wrote:
Hi Kim
of course anything could be possible, but I personally am not convinced
that Dovecot is blocking or failing with a "451 4.3.0 Temporary internal
error" to Postfix without logging (before or after that response and
somewhere during the lmtp transaction) something more specific in
Dovecot's own logging.
Only other things that come to mind, unless you want to post more details,
are:
1. check how you are enabling debugging output in dovecot in case you have
enabled it selectively and are not seeing the full picture. I have to say
that this might not be a particularly likely avenue to follow since from
my knowledge of the code I am expecting Dovecot to log an error message,
but it could be worth a try if all else is failing to shed light on the
cause.
2. if you have a working installation somewhere, you could compare the
debug logging of Dovecot on a similar working transaction and that might
give you a clue as to what is happening that is different in this case.
3. Coming at the problem from a different angle, you could enable
verbosity in the Postfix lmtp client by adding a -v parameter to the lmtp
service in master.cf (where this is a server on which you can safely do
debugging and troubleshooting)
lmtp unix - - n - - lmtp -v
That will enable you to see the whole lmtp transaction from Postfix's
point of view and may provide an alternative insight in to what is
happening. One thing to notice (since you were mentioning that the error
is happening after the DATA stage) is that if Dovecot is announcing
PIPELINING support and Postfix is using it (both these are as expected -
see example below), then Postfix arrives at sending the DATA command
before Dovecot has responded on the sender and recipients(s).
Jan 24 09:36:52 server.example.com postfix/lmtp[1951890]:
smtp_connect_unix: trying: private/dovecot-lmtp... Jan 24 09:36:52
server.example.com postfix/lmtp[1951890]: smtp_stream_setup: maxtime=300
enable_deadline=0 min_data_rate=0 Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: < server.example.com[private/dovecot-lmtp]: 220
server.example.com Dovecot ready. Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: > server.example.com[private/dovecot-lmtp]: LHLO
server.example.com Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: < server.example.com[private/dovecot-lmtp]:
250-server.example.com Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: < server.example.com[private/dovecot-lmtp]:
250-8BITMIME Jan 24 09:36:52 server.example.com postfix/lmtp[1951890]: <
server.example.com[private/dovecot-lmtp]: 250-CHUNKING Jan 24 09:36:52
server.example.com postfix/lmtp[1951890]: <
server.example.com[private/dovecot-lmtp]: 250-ENHANCEDSTATUSCODES Jan 24
09:36:52 server.example.com postfix/lmtp[1951890]: <
server.example.com[private/dovecot-lmtp]: 250-PIPELINING Jan 24 09:36:52
server.example.com postfix/lmtp[1951890]: <
server.example.com[private/dovecot-lmtp]: 250 STARTTLS Jan 24 09:36:52
server.example.com postfix/lmtp[1951890]: server features: 0x17 size 0 Jan
24 09:36:52 server.example.com postfix/lmtp[1951890]: Using LMTP
PIPELINING, TCP send buffer size is 212992, PIPELINING buffer size is 4096
Jan 24 09:36:52 server.example.com postfix/lmtp[1951890]:
smtp_stream_setup: maxtime=300 enable_deadline=0 min_data_rate=0 Jan 24
09:36:52 server.example.com postfix/lmtp[1951890]: >
server.example.com[private/dovecot-lmtp]: MAIL
FROM:[1]<[email protected]> BODY=7BIT Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: > server.example.com[private/dovecot-lmtp]: RCPT
TO:[2]<[email protected]> Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: > server.example.com[private/dovecot-lmtp]: DATA
Jan 24 09:36:52 server.example.com postfix/lmtp[1951890]:
smtp_stream_setup: maxtime=300 enable_deadline=0 min_data_rate=0 Jan 24
09:36:52 server.example.com postfix/lmtp[1951890]: <
server.example.com[private/dovecot-lmtp]: 250 2.1.0 OK Jan 24 09:36:52
server.example.com postfix/lmtp[1951890]: smtp_stream_setup: maxtime=300
enable_deadline=0 min_data_rate=0 Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: < server.example.com[private/dovecot-lmtp]: 250
2.1.5 OK Jan 24 09:36:52 server.example.com postfix/lmtp[1951890]:
smtp_stream_setup: maxtime=120 enable_deadline=0 min_data_rate=0 Jan 24
09:36:52 server.example.com postfix/lmtp[1951890]: <
server.example.com[private/dovecot-lmtp]: 354 OK Jan 24 09:36:52
server.example.com postfix/lmtp[1951890]: smtp_stream_setup: maxtime=180
enable_deadline=0 min_data_rate=500 Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: > server.example.com[private/dovecot-lmtp]: . Jan
24 09:36:52 server.example.com postfix/lmtp[1951890]: >
server.example.com[private/dovecot-lmtp]: QUIT Jan 24 09:36:52
server.example.com postfix/lmtp[1951890]: smtp_stream_setup: maxtime=600
enable_deadline=0 min_data_rate=0 Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: < server.example.com[private/dovecot-lmtp]: 250
2.0.0 [3]<[email protected]> sbrTDqSEdGmTyB0ALVh/mg Saved Jan 24
09:36:52 server.example.com postfix/lmtp[1951890]: 4dyp7S1Qxyz1q919:
to=[4]<[email protected]>,
relay=server.example.com[private/dovecot-lmtp], delay=0.13,
delays=0/0.01/0.03/0.08, dsn=2.0.0, status=sent (250 2.0.0
[5]<[email protected]> sbrTDqSEdGmTyB0ALVh/mg Saved) Jan 24 09:36:52
server.example.com postfix/lmtp[1951890]: smtp_loop: got 1 of 1
end-of-data replies Jan 24 09:36:52 server.example.com
postfix/lmtp[1951890]: smtp_stream_setup: maxtime=300 enable_deadline=0
min_data_rate=0 Jan 24 09:36:52 server.example.com postfix/lmtp[1951890]:
< server.example.com[private/dovecot-lmtp]: 221 2.0.0 Bye
John
On 23/01/2026 09:40, Kim Haverblad via dovecot wrote:
Hi John,
thank you for the clarification -- that helps, and I agree that the
auth-worker disconnect message itself can be disregarded.
To narrow this down further, the consistent behavior I'm seeing is that
everything succeeds up to the point where Dovecot should write the message
to disk, but the actual mailbox write never happens.
What works
o LMTP connection is established
o RCPT is accepted
o userdb lookup succeeds and returns:
o valid mailbox path under /var/mail/vmail/
o explicit uid/gid
o quota rule
o No errors are logged during authentication or userdb lookup
What fails
o After the DATA phase, Postfix receives:
"451 4.3.0 Temporary internal error"
o No message is written to disk
o No Maildir structure (cur/, new/, tmp/) is created automatically
o Manually creating /var/mail/vmail/<domain>/<user>/ (including Maildir
structure) does not change the behavior
What has been verified
o Ownership and permissions on /var/mail/vmail and subdirectories match
the uid/gid returned by userdb
o Parent directories are writable
o Disk space and inodes are available
o This is a local filesystem (no NFS)
o The problem persists even with a freshly created mailbox path
From this, it appears that Dovecot is blocked or failing internally at the
final delivery/write stage, but without emitting a more specific error
message.
//Kim
On 2026-01-23 09:12, John Fawcett via dovecot wrote:
On 22/01/2026 20:57, Kim Haverblad via dovecot wrote:
Hi dovecot list,
I'm troubleshooting an LMTP delivery issue with Dovecot and would
appreciate clarification on the meaning and impact of the
following log
message, which appears repeatedly during delivery attempts:
auth-worker(2961): Debug: conn unix:auth-worker
(pid=2948,uid=107):
Disconnected: Connection closed (fd=-1)
Environment
o OS: Ubuntu (latest LTS, fully up to date)
o Dovecot: distribution package (current version for Ubuntu)
o MTA: Postfix
o Delivery: LMTP to Dovecot
o User database: MySQL (userdb lookup succeeds)
o Mail storage: Maildir
o Quotas: enabled via userdb (quota_rule)
Context
o LMTP accepts the recipient and completes userdb lookup
successfully.
o The mailbox path, uid, gid, and quota are correctly returned.
o Postfix later receives a 451 4.3.0 Temporary internal error
after the
DATA phase.
o The above auth-worker ... Disconnected: Connection closed
(fd=-1)
message appears around the same time.
Questions
1. Is this Disconnected: Connection closed (fd=-1) message
expected/normal behavior for auth-worker processes once a
lookup is
complete?
2. Under what circumstances would this indicate a real problem
versus a
harmless connection teardown?
3. Could this message itself contribute to, or explain, LMTP 451
4.3.0
Temporary internal error responses?
4. Are there specific auth-worker, LMTP, or debug settings
recommended to
determine whether this disconnect is abnormal?
So far, authentication and userdb lookups appear clean, and there
are no
explicit permission or quota errors logged, which makes it unclear
whether
this message is relevant to the delivery failure or simply
informational.
Any clarification on how to interpret this log entry -- and how to
confirm
whether it is benign or problematic -- would be greatly
appreciated.
Kind Regards,
Kim
Hi Kim
that's a debug message. In an installation running without debug logging
you never get to see it. I cannot think of any reason why that message
should be considered an issue. Certainly the 451 error message is much
more indicative of a problem. Also since the error message is happening
after the DATA phase, I would look for an issue that does not occur in
the auth-worker process (even if it potentially could be triggered by
data returned in the user lookups).
If you post the logging of the complete LMTP transaction to the list
someone may be able to identify something else that looks strange. The
info in your email contains little clue to the cause. If privacy is a
concern you can consistently modify email addresses throughout the log
snippet. dovecot -n output could also help too.
John
_______________________________________________
dovecot mailing list -- [[6]1][email protected]
To unsubscribe send an email to [[7]2][email protected]
References
Visible links
1. [8]mailto:[email protected]
2. [9]mailto:[email protected]
_______________________________________________
dovecot mailing list -- [10][email protected]
To unsubscribe send an email to [11][email protected]
References
Visible links
1. mailto:[email protected]
2. mailto:[email protected]
3. mailto:[email protected]
4. mailto:[email protected]
5. mailto:[email protected]
6. mailto:1][email protected]
7. mailto:2][email protected]
8. mailto:[email protected]
9. mailto:[email protected]
10. mailto:[email protected]
11. mailto:[email protected]
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]