#2687·Mailu

Cannot generate DKIM keys for long domain names

Author: ligixCreated Mar 8, 2023Updated Jun 28, 2026
Labelspriority/p2type/bug

Environment & Version

Environment

  • docker-compose
  • kubernetes
  • docker swarm

Version

  • Version: 1.9 (just updated with docker-compose pull)

Description

Mailu fails to generate DKIM keys for domains that are too long and, instead, fails with a 500 internal server error

Replication Steps

  • Go to the admin panel > mail domains
  • Add llllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.com
  • Try to generate new dkim keys

Observed behaviour

It fails to generate them

Expected behaviour

It should either generate them or tell the user that the domain name is too long (and maybe acknowledge it when the domain is added too)

Logs

admin_1     | Traceback (most recent call last):
admin_1     |   File "/usr/lib/python3.9/site-packages/flask/app.py", line 2073, in wsgi_app
admin_1     |     response = self.full_dispatch_request()
admin_1     |   File "/usr/lib/python3.9/site-packages/flask/app.py", line 1518, in full_dispatch_request
admin_1     |     rv = self.handle_user_exception(e)
admin_1     |   File "/usr/lib/python3.9/site-packages/flask/app.py", line 1516, in full_dispatch_request
admin_1     |     rv = self.dispatch_request()
admin_1     |   File "/usr/lib/python3.9/site-packages/flask/app.py", line 1502, in dispatch_request
admin_1     |     return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
admin_1     |   File "/usr/lib/python3.9/site-packages/flask_login/utils.py", line 272, in decorated_view
admin_1     |     return func(*args, **kwargs)
admin_1     |   File "/app/mailu/ui/access.py", line 28, in wrapper
admin_1     |     return callback(function, args, kwargs, dargs, dkwargs)
admin_1     |   File "/app/mailu/ui/access.py", line 19, in callback
admin_1     |     return function(*args, **kwargs)
admin_1     |   File "/app/mailu/ui/access.py", line 105, in wrapper
admin_1     |     return function(*args, **kwargs)
admin_1     |   File "/app/mailu/ui/views/domains.py", line 77, in domain_genkeys
admin_1     |     models.db.session.commit()
admin_1     |   File "<string>", line 2, in commit
admin_1     |   File "/usr/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1428, in commit
admin_1     |     self._transaction.commit(_to_root=self.future)
admin_1     |   File "/usr/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 839, in commit
admin_1     |     self.session.dispatch.after_commit(self.session)
admin_1     |   File "/usr/lib/python3.9/site-packages/sqlalchemy/event/attr.py", line 256, in __call__
admin_1     |     fn(*args, **kw)
admin_1     |   File "/app/mailu/models.py", line 176, in _save_dkim_keys
admin_1     |     obj.save_dkim_key()
admin_1     |   File "/app/mailu/models.py", line 207, in save_dkim_key
admin_1     |     with open(file_path, 'wb') as handle:
admin_1     | OSError: [Errno 36] Filename too long: '/dkim/llllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.com.dkim.key'