I recently updated from django 3.2 to 4.2 and am getting a 404 in my logging middleware when a request gets a redirect on requests where APPEND_SLASH applies. My application has the APPEND_SLASH setting enabled and when I call
curl -D - http://<host>/health, when
/health/ is the correct path,
curl correctly gets a 301 response but it gets passed to my custom logging middleware as a 404. In the past the redirect did not get passed to the middleware and these requests were not present in the logs.
I also checked and in django 4.1 it has the same behavior as in 3.2. What changed in 4.2 for this to happen? I cannot find any relevant information in the release notes.
If helpful, this is my list of middleware:
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'myapp.middleware.LoggingMiddleware' ]