From 6e54a658c6021347d848011e952cb6bea2954489 Mon Sep 17 00:00:00 2001 From: Luka Pajukanta Date: Wed, 30 Sep 2026 11:54:28 +0300 Subject: [PATCH] fix: 404 page returns 404, not 200 or a traceback-less 500 feedback_context bound FeedbackForm to request.POST on every POST, so an unparsable multipart body (e.g. Next.js server action scanners) raised MultiPartParserError inside handler404. Django swallows exceptions from error handlers and returns a bare 500, logged without a traceback. The feedback widget submits to /feedback, which binds the form itself, so the context processor now always provides an unbound form. not_found_view also rendered with the default status 200. Co-Authored-By: Claude Opus 5.5 --- kompassi/access/views/error_views.py | 1 + kompassi/feedback/context_processors.py | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/kompassi/access/views/error_views.py b/kompassi/access/views/error_views.py index 14e3c16a4..0d792cfa4 100644 --- a/kompassi/access/views/error_views.py +++ b/kompassi/access/views/error_views.py @@ -30,4 +30,5 @@ def not_found_view(request, exception=None): "event": None, "login_page": True, }, + status=404, ) diff --git a/kompassi/feedback/context_processors.py b/kompassi/feedback/context_processors.py index 1e135605a..b9a752faa 100644 --- a/kompassi/feedback/context_processors.py +++ b/kompassi/feedback/context_processors.py @@ -1,8 +1,5 @@ -from kompassi.core.utils import initialize_form - from .forms import FeedbackForm def feedback_context(request): - feedback_form = initialize_form(FeedbackForm, request) - return dict(feedback_form=feedback_form) + return dict(feedback_form=FeedbackForm())