djangodjango-flatpages

Why does Django's flatpages allow logging a 404 error?


A funny thing I've noticed about Django's flatpages app: it allows core/handlers/base.py to log a warning Not Found: $page. As a result of that, my Sentry logs are full with 404s for legitimate and working pages. It seems to happen because first Django logs a 404, then it returns a HttpResponseNotFound object and then the flatpages middleware kicks in and returns a proper 200 response.

Is this something I could consider a bug in Django? My reasoning is that a valid flatpage is not a missing page and thus shouldn't log a 404 message. Isn't there an other way to catch a 404 without logging it as missing?


Solution

  • It's not a bug, it's the way that django flatpages app work: its middleware kicks in after 404 from urls. That's why your sentry is full of 404s.

    Consider not registering 404 in sentry. :/ I dont see any other way here.

    There might be another solution: instead of using middleware try to include flatpages.urls at end of your urlpatterns.