Confirmation emails aren't being sent to users and there's nothing in the logs that make it obvious what's happening.
ERROR 2026-02-12 14:15:11,250 1985547 django.request Internal Server Error: /archives/list/soas@lists.sugarlabs.org/thread/CVAUPR7L6AYTNZXIWHQ263A6ZJUROTRC/ 233825 Traceback (most recent call last): 233826 File "/opt/mailman/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner 233827 response = get_response(request) 233828 File "/opt/mailman/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response 233829 response = wrapped_callback(request, *callback_args, **callback_kwargs) 233830 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/lib/view_helpers.py", line 137, in inner 233831 return func(request, *args, **kwargs) 233832 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/views/thread.py", line 238, in thread_index 233833 return render(request, "hyperkitty/thread.html", context=context) 233834 File "/opt/mailman/venv/lib/python3.10/site-packages/django/shortcuts.py", line 25, in render 233835 content = loader.render_to_string(template_name, context, request, using=using) 233836 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/loader.py", line 62, in render_to_string 233837 return template.render(context, request) 233838 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/backends/django.py", line 107, in render 233839 return self.template.render(context) 233840 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 172, in render 233841 return self._render(context) 233842 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 164, in _render 233843 return self.nodelist.render(context) 233844 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in render 233845 return SafeString("".join([node.render_annotated(context) for node in self])) 233846 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in <listcomp> 233847 return SafeString("".join([node.render_annotated(context) for node in self])) 233848 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 979, in render_annotated 233849 return self.render(context) 233850 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 159, in render 233851 return compiled_parent._render(context) 233852 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 164, in _render 233853 return self.nodelist.render(context) 233854 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in render 233855 return SafeString("".join([node.render_annotated(context) for node in self])) 233856 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in <listcomp> 233857 return SafeString("".join([node.render_annotated(context) for node in self])) 233858 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 979, in render_annotated 233859 return self.render(context) 233860 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 65, in render 233861 result = block.nodelist.render(context) 233862 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in render 233863 return SafeString("".join([node.render_annotated(context) for node in self])) 233864 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in <listcomp> 233865 return SafeString("".join([node.render_annotated(context) for node in self])) 233866 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 979, in render_annotated 233867 return self.render(context) 233868 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 210, in render 233869 return template.render(context) 233870 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 174, in render 233871 return self._render(context) 233872 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 164, in _render 233873 return self.nodelist.render(context) 233874 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in render 233875 return SafeString("".join([node.render_annotated(context) for node in self])) 233876 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in <listcomp> 233877 return SafeString("".join([node.render_annotated(context) for node in self])) 233878 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 979, in render_annotated 233879 return self.render(context) 233880 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1077, in render 233881 output = self.filter_expression.resolve(context) 233882 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 750, in resolve 233883 new_obj = func(obj, *arg_vals) 233884 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/templatetags/decorate.py", line 42, in render 233885 return mark_safe(text_renderer(content)) 233886 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/markdown.py", line 120, in __call__ 233887 return self.parse(s)[0] 233888 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/markdown.py", line 93, in parse 233889 self.block.parse(state) 233890 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 458, in parse 233891 end_pos2 = self.parse_method(m, state) 233892 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 216, in parse_method 233893 return func(m, state) 233894 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 369, in parse_block_quote 233895 text, end_pos = self.extract_block_quote(m, state) 233896 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 346, in extract_block_quote 233897 end_pos = self.parse_method(m4, state) 233898 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 216, in parse_method 233899 return func(m, state) 233900 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 388, in parse_list 233901 return parse_list(self, m, state) 233902 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/list_parser.py", line 64, in parse_list 233903 groups = _parse_list_item(block, bullet, groups, token, state, rules) 233904 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/list_parser.py", line 178, in _parse_list_item 233905 block.parse(child, rules) 233906 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 458, in parse 233907 end_pos2 = self.parse_method(m, state) 233908 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 214, in parse_method 233909 assert lastgroup 233910 AssertionError
This is the last error in mailmanweb.log, the errors before that are similar.
Ibiam Chihurumnaya via Mailman-users writes:
Confirmation emails aren't being sent to users and there's nothing in the logs that make it obvious what's happening.
As I explained earlier, this backtrace
233830 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/lib/view_helpers.py", line 137, in inner [...] 233908 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 214, in parse_method 233909 assert lastgroup 233910 AssertionError
is a known issue with mistune, which used by HyperKitty to display messages from the archives.
Whatever is happening with the confirmation messages, it's unrelated to this.
- What confirmation messages are missing? Mailman may ask for confirmation if a user adds an email address via Postorius, if the user asks for a password reset from Postorius, if a user who is not logged in subscribes to a list (either by email or by Postorius), and there may be other cases. Please describe all that apply.
- What makes you think that they are missing? Sometimes users or sites have filters that throw them away, or they may be swallowed by MTAs because of misconfigurations.
- Is your "virgin" runner and "out" runner running? (Usually "ps aux | grep mailman" will list only the processes running under mailman. The full command at the end of the line will tell you the names of the runners each process is handling.)
- Are there messages collecting in the "virgin" or "out" queues?
- Are there messages collecting in the MTA queue (the mailq utility will usually tell you about those)?
- Normally you would see log messages for outgoing confirmations in /opt/mailman/mm/var/logs/smtp.log. You might see errors in mailman.log if Mailman core is requesting the confirmations. If Postorius is requesting the confirmations, I think it would probably be in mailmanweb.log (Django has its own mail-sending facility, those don't go through Mailman core).
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
participants (2)
-
Ibiam Chihurumnaya -
Stephen J. Turnbull