It appears some people use the recall functionality with a redirect
response, and Devise starting on version 4.9 was overriding that status
code to the configured error_status for better Turbo support, which
broke the redirect functionality / expectation.
While I don't think it's really great usage of the recall functionality,
or at least it was unexpected usage, it's been working like that
basically forever where recalling would use the status code of the
recalled action, so this at least keeps it more consistent with that
behavior by respecting redirects and keeping that response as a redirect
based on the configured status, which should also work with Turbo I
believe, and makes this less of a breaking change.
It appears some people use the recall functionality with a redirect response, and Devise starting on version 4.9 was overriding that status code to the configured
error_status
for better Turbo support, which broke the redirect functionality / expectation.While I don't think it's really great usage of the recall functionality, or at least it was unexpected usage, it's been working like that basically forever where recalling would use the status code of the recalled action, so this at least keeps it more consistent with that behavior by respecting redirects and keeping that response as a redirect based on the configured status, which should also work with Turbo I believe, and makes this less of a breaking change.
Closes https://github.com/heartcombo/devise/issues/5570 Closes https://github.com/heartcombo/devise/issues/5561 (it was closed previously, but related / closes with an actual change now.)