next-drupal
next-drupal copied to clipboard
Infinite redirect loop with ISG and ODR in edge cases
Hei,
i wanted to report a potential bug with redirects integration and incremental static regeneration and on-demand revalidation which results in an infinite redirect loop in the next website.
Steps to reproduce:
- Have ISG and On-demand revalidation enabled and configured
- Run the next.js app in production mode (Because ISG is re-done each request on dev mode)
- Pathauto and redirect need to be configured correctly and the client is adapter like here: https://next-drupal.org/guides/redirects
- Have a content type with a path auto pattern based on a content field (e.g title) we use here
/article/testas an example - Change the title from
testtotest1. A redirect from/article/testto/article/test1is created in Drupal. Loading/article/testin the client serves a 301 redirect to/article/test1--> OK - Change the title from
test1back totest. The redirect from/article/testto/article/test1in Drupal is deleted. A Redirect from/article/test1to/article/testis created. Loading/article/test1in Drupal works okay. Also the redirect works okay. - Loading
/article/testin the client leads to an infinite redirect loop. Potentially because the delete of the old redirect did not trigger a revalidation on the client on the old url. So the client now has 2 cached redirects which lead to each other -> Loop
Potential fixes:
- If the url changed revalidate the old and the new path
- Revalidate urls also on redirect creation / change
@yobottehg Thanks for the detailed instructions. I'll look into this.
Any information about this. We have a similar bug.
Drupal user change a site and a auto redirect will be created from the redirect module. But this will not update the next cache. If I disable the auto generate redirect on alias change in the redirect module and create a redirect manual it will work as intended