fix: 404 page returns 404, not 200 or a traceback-less 500 - #1077
Conversation
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 <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe not-found view now sets the response status to 404. The feedback context processor now constructs ChangesNot-found response status
Feedback form construction
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~5 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The changes address the intended 404 and feedback-form behavior without an identified regression; no merge-blocking risk remains. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 1 system. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
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 noreply@anthropic.com
Summary by CodeRabbit