Since I always seem to be asking questions and receiving help, I thought I would let you know how I finally solved this problem.
What was wrong was in the naming of my jsps (the view-ids). I changed my faces-config.xml from: <navigation-case> <from-outcome>loggedOff</from-outcome> <to-view-id>/failure.jsp</to-view-id> </navigation-case> to <navigation-case> <from-outcome>loggedOff</from-outcome> <to-view-id>/logon.jsp</to-view-id> </navigation-case> The rules for "registration" of the backing bean to a jsp/view-id are given in detail in the javadocs for ViewController: http://people.apache.org/~craigmcc/shale-core-javadocs/. Also, there are examples in DefaultControllerMapper.java in the source. For example, I have a managed bean called logon and hence setting the view-id as /logon.jsp marries them together.. (I hope I've got that right!). Clearly, unless the naming rules are strictly followed (see gory details again in DefaultViewControllerMapper.java), Shale cannot be expected to satisfy its contract. So, I guess as always, the rule is: read the documentation. And if that doesn't help, read the code..:) Regards, Geeta