The redirect during render support doesn't retain the redirect URL across requests. If a user refreshes the portlet the original (before redirect) url is targeted. Though this results in the redirect replaying this doesn't always yield identical results than if you targeted the redirect url directly. This is because Faces (extensions) may encode additional state/info in the query string of the redirect url which changes each time such a redirect would be issued. To function properly the bridge must cache the redirect url, and detect that it should use it on subsequent refreshes (renders prior to action) instead of causing the redirect logic to be triggered all over again.