• Bug#1105746: python3-django-allauth: Missing template for error 429 gen

    From Paolo Miotto@21:1/5 to All on Wed May 14 11:20:02 2025
    Package: python3-django-allauth
    Version: 0.51.0-1
    Severity: normal

    Dear Maintainers,

    Yesterday we discovered that reaching the rate limit of the registration page of our Mailman installation throws this exception (and a lot of emails, sigh!):

    ERROR 2025-05-13 01:34:04,725 1324 django.request Internal Server Error: /mailman3/accounts/signup/
    Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
    ^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/django/utils/decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/allauth/decorators.py", line 18, in wrap
    resp = ratelimit.consume_or_429(request, action=action, **rl_kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/allauth/ratelimit.py", line 77, in consume_or_429
    return render(request, "429." + app_settings.TEMPLATE_EXTENSION, status=429)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/django/shortcuts.py", line 19, in render
    content = loader.render_to_string(template_name, context, request, using=using)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/django/template/loader.py", line 61, in render_to_string
    template = get_template(template_name, using=using)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/django/template/loader.py", line 19, in get_template
    raise TemplateDoesNotExist(template_name, chain=chain) django.template.exceptions.TemplateDoesNotExist: 429.html

    To generate this page, mailman3 use allauth package; when rate limit is triggered it
    tries to display a page for error 429 but cannot find the corresponding template.

    My impression is that

    * a missing template should not throw such a serious exception
    * the task of providing the template is of this package, as it is hardcoded in ratelimit.py

    but I could be wrong.

    Best regards.

    Paolo

    -- System Information:
    Debian Release: 12.10
    APT prefers stable-updates
    APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
    Architecture: amd64 (x86_64)

    Kernel: Linux 6.1.0-34-amd64 (SMP w/2 CPU threads; PREEMPT)
    Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8), LANGUAGE not set
    Shell: /bin/sh linked to /usr/bin/dash
    Init: systemd (via /run/systemd/system)
    LSM: AppArmor: enabled

    Versions of packages python3-django-allauth depends on:
    ii python3 3.11.2-1+b1
    ii python3-cryptography 38.0.4-3+deb12u1
    ii python3-django 3:3.2.19-1+deb12u1
    ii python3-jwt 2.6.0-1
    ii python3-openid 3.2.0-2
    ii python3-requests 2.28.1+dfsg-1
    ii python3-requests-oauthlib 1.3.0+ds-1

    python3-django-allauth recommends no packages.

    Versions of packages python3-django-allauth suggests:
    pn python-django-allauth-doc <none>

    -- no debconf information

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)