To reproduce: 1.- load a page with WKPageLoadURL 2.- load an invalid page and in load error callback load alternate page with WKPageLoadAlternateHTMLString 3.- load another page with WKPageLoadURL 4.- WKPageGoBack() -> alternate page is loaded 5.- WKPageGoBack() -> alternate page is loaded again ..... So it's not possible to go back from the alternate page. The problem is that FrameLoader::shouldReloadToHandleUnreachableURL() assumes loads happens synchronously, which is true in WebKit1 but not in WebKit2, and for WebKit2 compareDocumentLoader is always NULL and shouldReloadToHandleUnreachableURL() never returns true.
See also: bug 93680.