After updating to DirectAdmin 1.702 (Exim 4.99.3), 451 Temporary local problem - please try late

hqn34

Verified User
Joined
Nov 7, 2022
Messages
31
After updating to DirectAdmin 1.702 (Exim 4.99.3), all incoming and outgoing mail started failing with:

451 Temporary local problem - please try later

Exim mainlog shows:

Undefined subroutine &main::find_uid called
Undefined subroutine &main::auth_hit_limit_acl called
Undefined subroutine &main::hit_limit_user called
Undefined subroutine &main::check_limits called

Issue is reproducible after:

cd /usr/local/directadmin/custombuild
./build exim_conf
systemctl restart exim

We confirmed that generated /etc/exim.conf references these Perl functions, but generated /etc/exim.pl does not contain them.

Temporary workaround that restored mail flow:

sub find_uid { return 0; }
sub auth_hit_limit_acl { return 0; }
sub hit_limit_user { return 0; }
sub check_limits { return 1; }

added manually to /etc/exim.pl

CustomBuild options:

  • exim.conf update: yes
  • BlockCracking: yes
  • Easy Spam Fighter: yes
  • Rspamd: yes
Can anyone confirm if this is a known 1.702 Exim template issue?
 
Update / Solution:

The issue was caused by an old custom Exim configuration file:

/usr/local/directadmin/custombuild/custom/exim/exim.conf

This file was created before the DirectAdmin 1.702 update. After 1.702, Exim/Perl mail limit handling changed, and this old custom exim.conf became incompatible with the new generated /etc/exim.pl.

Because of that, Exim started failing with:

Undefined subroutine &main::find_uid called
Undefined subroutine &main::auth_hit_limit_acl called
Undefined subroutine &main::hit_limit_user called
Undefined subroutine &main::check_limits called

and mail sending/receiving failed with:

451 Temporary local problem - please try later

Solution:

I disabled the old custom Exim config:

mv /usr/local/directadmin/custombuild/custom/exim/exim.conf /usr/local/directadmin/custombuild/custom/exim/exim.conf.disabled

Then rebuilt the Exim config:

cd /usr/local/directadmin/custombuild
./build exim_conf
systemctl restart exim

After that, Exim generated the correct current configuration. Mail sending/receiving started working again, and Rspamd also started receiving/scanning messages again.

So the root cause was not Exim 4.99.3 itself, but an outdated custom exim.conf overriding the new DirectAdmin 1.702 Exim template.
 
Update / Solution:

The issue was caused by an old custom Exim configuration file:

/usr/local/directadmin/custombuild/custom/exim/exim.conf

This file was created before the DirectAdmin 1.702 update. After 1.702, Exim/Perl mail limit handling changed, and this old custom exim.conf became incompatible with the new generated /etc/exim.pl.

Because of that, Exim started failing with:

Undefined subroutine &main::find_uid called
Undefined subroutine &main::auth_hit_limit_acl called
Undefined subroutine &main::hit_limit_user called
Undefined subroutine &main::check_limits called

and mail sending/receiving failed with:

451 Temporary local problem - please try later

Solution:

I disabled the old custom Exim config:

mv /usr/local/directadmin/custombuild/custom/exim/exim.conf /usr/local/directadmin/custombuild/custom/exim/exim.conf.disabled

Then rebuilt the Exim config:

cd /usr/local/directadmin/custombuild
./build exim_conf
systemctl restart exim

After that, Exim generated the correct current configuration. Mail sending/receiving started working again, and Rspamd also started receiving/scanning messages again.

So the root cause was not Exim 4.99.3 itself, but an outdated custom exim.conf overriding the new DirectAdmin 1.702 Exim template.


mv /usr/local/directadmin/custombuild/custom/exim/exim.conf /usr/local/directadmin/custombuild/custom/exim/exim.conf.disabled
This whas the solution, and i think that its not be needed any more?
When i build again its working
 
  • Like
Reactions: fln
@hqn34, these errors can happen if you have customized the Exim configuration files. The latest Exim configuration that comes with DirectAdmin does not use these perl functions and the exim.pl script no longer contains them.

As @AlexanderNL already mentioned please check if you have any files in the /usr/local/directadmin/custombuild/custom/exim directory and adjust or remove them.
 
@hqn34, these errors can happen if you have customized the Exim configuration files. The latest Exim configuration that comes with DirectAdmin does not use these perl functions and the exim.pl script no longer contains them.

As @AlexanderNL already mentioned please check if you have any files in the /usr/local/directadmin/custombuild/custom/exim directory and adjust or remove them.
cd /usr/local/directadmin/custombuild/custom/exim
[root@server exim]# ls
exim.conf.disabled Makefile
[root@server exim]#


This is in the folder of exim now, i have to remove exim.conf.disabled?
 
If you do not want to change the default Exim configuration you can remove the whole customizations directory:

Code:
rm -rf /usr/local/directadmin/custombuild/custom/exim

Standard DirectAdmin installations does not have any files in /usr/local/directadmin/custombuild/custom. This directory can be used to create customized versions of the CustomBuild configuration files. If you have made custom versions of the config files you should know why they were customized and what was different from the default config files.

If you are not sure why the customizations were made then it is safe to remove them.
 
If you do not want to change the default Exim configuration you can remove the whole customizations directory:

Code:
rm -rf /usr/local/directadmin/custombuild/custom/exim

Standard DirectAdmin installations does not have any files in /usr/local/directadmin/custombuild/custom. This directory can be used to create customized versions of the CustomBuild configuration files. If you have made custom versions of the config files you should know why they were customized and what was different from the default config files.

If you are not sure why the customizations were made then it is safe to remove them.
Ok thanks i have remove them now
Its also for this files?

ls
ap2 dovecot hooks
[root@server custom]# cd dovecot
[root@server dovecot]# ls
configure.dovecot zz-debug.conf
[root@server dovecot]# cd ..
[root@server custom]# cd hoooks
-bash: cd: hoooks: No such file or directory
[root@server custom]# cd ap2
[root@server ap2]# ls
conf
[root@server ap2]# cd conf
[root@server conf]# ls
extra
[root@server conf]# cd extra
[root@server extra]# ls
httpd-includes.conf
[root@server extra]#
 
Back
Top