Hi.
I'm running Carbonio CE 26.3.1 on RHEL8.
Apparently the automatic renewal of Let's Encrypt SSL certificates stopped working after upgrading to 25.12.0.
I see that now when the certificates are expiring one by one.
Any idea how to fix this?
[zextras@smtp ~]$ certbot certificates
An unexpected error occurred:
KeyError: 'manual'
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /tmp/certbot-log-j7ocicto/log or re-run Certbot with -v for more details.
[zextras@smtp ~]$ cat /tmp/certbot-log-j7ocicto/log
2026-03-17 13:56:57,083:DEBUG:certbot._internal.main:certbot version: 2.11.1
2026-03-17 13:56:57,083:DEBUG:certbot._internal.main:Location of certbot entry point: /opt/zextras/common/certbot/bin/carbonio-certbot
2026-03-17 13:56:57,083:DEBUG:certbot._internal.main:Arguments: []
2026-03-17 13:56:57,084:DEBUG:certbot._internal.main:Discovered plugins: PluginsRegistry()
2026-03-17 13:56:57,086:DEBUG:certbot._internal.log:Exiting abnormally:
Traceback (most recent call last):
File "/opt/zextras/common/certbot/bin/carbonio-certbot", line 8, in <module>
sys.exit(main())
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/main.py", line 19, in main
return internal_main.main(cli_args)
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/_internal/main.py", line 1877, in main
config = cli.prepare_and_parse_args(plugins, cli_args)
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/_internal/cli/__init__.py", line 370, in prepare_and_parse_args
helpful.add(
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/_internal/cli/helpful.py", line 418, in add
self.actions.append(self._add(topics, *args, **kwargs))
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/_internal/cli/helpful.py", line 441, in _add
if not isinstance(topic, bool) and self.visible_topics[topic]:
KeyError: 'manual'
2026-03-17 13:56:57,086:ERROR:certbot._internal.log:An unexpected error occurred:
2026-03-17 13:56:57,086:ERROR:certbot._internal.log:KeyError: 'manual'
Thanks!
We are having the same problem here.
Running on Rocky 8.
Hi!
Any hints how to help to debug this issue - as at the moment we are not able to renew mail certs...
Gruesse
Michael
Guys,
Could you please confirm if the issue still exists after applying the 26.3.2 ?
Hi.
I've upgraded.
[zextras@smtp ~]$ zmcontrol -v
Carbonio Release 26.3.2
and the issue is still very much persistent.
Hi!
As asked in https://community.zextras.com/forum/carbonio-news/reporting-issues-on-carbonio-community-edition/ - I reported in addition an issue -> removed link
and yes
$ zmcontrol -v
Carbonio Release 26.3.2
Gruesse
Michael
@hwoffinden did you try to reinstall the package carbonio-certbot ?
dnf reinstall carbonio-certbot
Can you check the contents for cerbot python folder and share the output ?
dnf install tree tree /opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/
@mgarbo No I haven't, but thanks for the tip.
I will try it, when I return from my vacation, and let you know.
Hi!
Performed "dnf reinstall carbonio-certbot"...
No change...
# cat log
2026-04-18 22:57:17,550:DEBUG:certbot._internal.main:certbot version: 2.11.1
2026-04-18 22:57:17,550:DEBUG:certbot._internal.main:Location of certbot entry point: /opt/zextras/common/certbot/bin/carbonio-certbot
2026-04-18 22:57:17,550:DEBUG:certbot._internal.main:Arguments: []
2026-04-18 22:57:17,550:DEBUG:certbot._internal.main:Discovered plugins: PluginsRegistry()
2026-04-18 22:57:17,555:DEBUG:certbot._internal.log:Exiting abnormally:
Traceback (most recent call last):
File "/opt/zextras/common/certbot/bin/carbonio-certbot", line 8, in <module>
sys.exit(main())
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/main.py", line 19, in main
return internal_main.main(cli_args)
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/_internal/main.py", line 1877, in main
config = cli.prepare_and_parse_args(plugins, cli_args)
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/_internal/cli/__init__.py", line 370, in prepare_and_parse_args
helpful.add(
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/_internal/cli/helpful.py", line 418, in add
self.actions.append(self._add(topics, *args, **kwargs))
File "/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/_internal/cli/helpful.py", line 441, in _add
if not isinstance(topic, bool) and self.visible_topics[topic]:
KeyError: 'manual'
2026-04-18 22:57:17,555:ERROR:certbot._internal.log:An unexpected error occurred:
2026-04-18 22:57:17,555:ERROR:certbot._internal.log:KeyError: 'manual'
Output of tree:
# tree /opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/
/opt/zextras/common/certbot/lib/python3.8/site-packages/certbot/
├── achallenges.py
├── compat
│ ├── filesystem.py
│ ├── __init__.py
│ ├── misc.py
│ ├── os.py
│ ├── _path.py
│ └── __pycache__
├── configuration.py
├── crypto_util.py
├── display
│ ├── __init__.py
│ ├── ops.py
│ ├── __pycache__
│ └── util.py
├── errors.py
├── __init__.py
├── interfaces.py
├── _internal
│ ├── account.py
│ ├── auth_handler.py
│ ├── cert_manager.py
│ ├── cli
│ │ ├── cli_constants.py
│ │ ├── cli_utils.py
│ │ ├── group_adder.py
│ │ ├── helpful.py
│ │ ├── __init__.py
│ │ ├── paths_parser.py
│ │ ├── plugins_parsing.py
│ │ ├── __pycache__
│ │ ├── subparsers.py
│ │ └── verb_help.py
│ ├── client.py
│ ├── constants.py
│ ├── display
│ │ ├── completer.py
│ │ ├── dummy_readline.py
│ │ ├── __init__.py
│ │ ├── obj.py
│ │ ├── __pycache__
│ │ └── util.py
│ ├── eff.py
│ ├── error_handler.py
│ ├── hooks.py
│ ├── __init__.py
│ ├── lock.py
│ ├── log.py
│ ├── main.py
│ ├── plugins
│ │ ├── disco.py
│ │ ├── __init__.py
│ │ ├── manual.py
│ │ ├── null.py
│ │ ├── __pycache__
│ │ ├── selection.py
│ │ ├── standalone.py
│ │ └── webroot.py
│ ├── __pycache__
│ ├── renewal.py
│ ├── snap_config.py
│ ├── storage.py
│ ├── tests
│ │ ├── account_test.py
│ │ ├── auth_handler_test.py
│ │ ├── cert_manager_test.py
│ │ ├── client_test.py
│ │ ├── cli_test.py
│ │ ├── compat
│ │ │ ├── filesystem_test.py
│ │ │ ├── __init__.py
│ │ │ ├── misc_test.py
│ │ │ ├── os_test.py
│ │ │ └── __pycache__
│ │ ├── configuration_test.py
│ │ ├── crypto_util_test.py
│ │ ├── display
│ │ │ ├── completer_test.py
│ │ │ ├── __init__.py
│ │ │ ├── internal_util_test.py
│ │ │ ├── obj_test.py
│ │ │ ├── ops_test.py
│ │ │ ├── __pycache__
│ │ │ └── util_test.py
│ │ ├── eff_test.py
│ │ ├── error_handler_test.py
│ │ ├── errors_test.py
│ │ ├── helpful_test.py
│ │ ├── hook_test.py
│ │ ├── __init__.py
│ │ ├── lock_test.py
│ │ ├── log_test.py
│ │ ├── main_test.py
│ │ ├── ocsp_test.py
│ │ ├── plugins
│ │ │ ├── common_test.py
│ │ │ ├── disco_test.py
│ │ │ ├── dns_common_test.py
│ │ │ ├── enhancements_test.py
│ │ │ ├── __init__.py
│ │ │ ├── manual_test.py
│ │ │ ├── null_test.py
│ │ │ ├── __pycache__
│ │ │ ├── selection_test.py
│ │ │ ├── standalone_test.py
│ │ │ ├── storage_test.py
│ │ │ ├── util_test.py
│ │ │ └── webroot_test.py
│ │ ├── __pycache__
│ │ ├── renewal_test.py
│ │ ├── renewupdater_test.py
│ │ ├── reverter_test.py
│ │ ├── storage_test.py
│ │ └── util_test.py
│ └── updater.py
├── main.py
├── ocsp.py
├── plugins
│ ├── common.py
│ ├── dns_common_lexicon.py
│ ├── dns_common.py
│ ├── dns_test_common_lexicon.py
│ ├── dns_test_common.py
│ ├── enhancements.py
│ ├── __init__.py
│ ├── __pycache__
│ ├── storage.py
│ └── util.py
├── __pycache__
├── py.typed
├── reverter.py
├── ssl-dhparams.pem
├── tests
│ ├── acme_util.py
│ ├── __init__.py
│ ├── __pycache__
│ ├── testdata
│ │ ├── cert_2048.pem
│ │ ├── cert_512_bad.pem
│ │ ├── cert_512.pem
│ │ ├── cert-5sans_512.pem
│ │ ├── cert_fullchain_2048.pem
│ │ ├── cert_intermediate_1.pem
│ │ ├── cert_intermediate_2.pem
│ │ ├── cert_leaf.pem
│ │ ├── cert-nosans_nistp256.pem
│ │ ├── cert-san_512.pem
│ │ ├── cli.ini
│ │ ├── csr_512.der
│ │ ├── csr_512.pem
│ │ ├── csr-6sans_512.conf
│ │ ├── csr-6sans_512.pem
│ │ ├── csr-nonames_512.pem
│ │ ├── csr-nosans_512.conf
│ │ ├── csr-nosans_512.pem
│ │ ├── csr-nosans_nistp256.pem
│ │ ├── csr-san_512.pem
│ │ ├── ec_prime256v1_key.pem
│ │ ├── ec_secp384r1_key.pem
│ │ ├── ec_secp521r1_key.pem
│ │ ├── nistp256_key.pem
│ │ ├── ocsp_certificate.pem
│ │ ├── ocsp_issuer_certificate.pem
│ │ ├── ocsp_responder_certificate.pem
│ │ ├── os-release
│ │ ├── README
│ │ ├── rsa2048_key.pem
│ │ ├── rsa256_key.pem
│ │ ├── rsa512_key.pem
│ │ ├── sample-archive
│ │ │ ├── cert1.pem
│ │ │ ├── chain1.pem
│ │ │ ├── fullchain1.pem
│ │ │ └── privkey1.pem
│ │ ├── sample-archive-ec
│ │ │ ├── cert1.pem
│ │ │ ├── chain1.pem
│ │ │ ├── fullchain1.pem
│ │ │ └── privkey1.pem
│ │ ├── sample-renewal-ancient.conf
│ │ ├── sample-renewal.conf
│ │ ├── sample-renewal-deprecated-option.conf
│ │ ├── sample-renewal-ec.conf
│ │ └── webrootconftest.ini
│ └── util.py
└── util.py
28 directories, 158 files
Gruesse
Michael
Hi.
I also performed "dnf reinstall carbonio-certbot"...
No change...
Hi!
Any news? Any ideas how to debug, troubleshoot?
Gruesse
Michael
Hi!
I would also like to have some kind of feedback. Tomorrow it's 2 months since I made this initial post, and so far nothing!
Regards,
Henrik
