We are using the rich tabPanel that looks like this:
<rich:tabPanel switchType="server" selectedTab="#{myListsListController.selectedEntityString}" valueChangeListener="#{myListsListController.tabChanged}">
<rich:tab id="tab1" label="#{pageLabels.tab_accounts}" name="Account" >
<%@include file="landslide-mylists-list-include.jsp"%>
</rich:tab>
<rich:tab id="tab2" label="#{pageLabels.tab_opps}" name="Opportunity">
<%@include file="landslide-mylists-list-include.jsp"%>
</rich:tab>
<rich:tab id="tab3" label="#{pageLabels.tab_contacts}" name="Contact">
<%@include file="landslide-mylists-list-include.jsp"%>
</rich:tab>
<rich:tab id="tab4" label="#{pageLabels.tab_leads}" name="Lead">
<%@include file="landslide-mylists-list-include.jsp"%>
</rich:tab>
</rich:tabPanel>I think I found the issue. My controller class is request scoped and I am using the a4j:keepAlive to give it "conversation" scope. I guess the tabPanel does not like that.