Personally, I'd go with a pop-up modal dialog (NOT a pop-up window) for an error display on a tabbed page. That way I could keep my tabs underneath. Second prize would go to a JavaScript pop-up messagebox, for the same reason (though less customizable).
However, you need to learn the difference between a
RESOURCE path and a [b/]URL[/b] path.
JSF navigation is done based on URLs, not on resources, although you can use navigation rule IDs as an abbreviated basis for URLs in JSF2. In short, "/mypage.xhtml" is wrong. That's the resource name. "/mypage.jsf" is the URL name.
The other thing I'll fault is using brute force for page navigation. If you code a proper action processor, you can simply return the value "error" and standard navigation will route you to the error page. The #1 error that people make when using JSF is to gratuitously over-complicate things that were designed to be simple.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.