Seems I have narrowed the problem down to Global.UrlRewriteProvidet.ConvertToExternal (from EPiServer.Web.UrlRewriteProvider).
Some background: I'm importing pages from a 4.61 site where MasterLanguage=EN and pages have LanguageBranch=EN.
The 6 R2 site I'm importing into has MasterLanguage=NO, and EN is disabled. (I'm using a SQL script hack to change the page language after importing: http://labs.dropit.se/blogs/post/2010/11/01/Move-content-to-another-language-in-EPiServer.aspx)
For each imported page, I do the following:
var ub = new UrlBuilder(pageData.LinkURL); // typically "/Templates/Pages/Article.aspx?id=2048" ub.QueryCollection["epslanguage"] = pageData.LanguageBranch; // pageData.LanguageBranch="EN" // ub="/Templates/Pages/Article.aspx?id=2048&epslanguage=EN" Global.UrlRewriteProvider.ConvertToExternal(ub, pageData.PageLink, Encoding.UTF8); // After ConvertToExternal, most pages returns ub="/somepath/the-real-urlsegment-of-the-page/". // But a few problem pages returns ub="/somepath/placeholder-for-page-of-type-/"
I have not been able to determine why this happens with only a few pages.
Edit: Googling for "placeholder for page of type", I see that several live sites (cms 5 and 6) have had their urlsegments changed like this.
After importing some pages from EPiServer 4.61 into EPiServer 6 R2, the URLSegment of some of these pages has been changed to "Placeholder-for-page-of type", resulting in URLSegments like:
The pagetype from 4.61 was imported successfully into 6 R2 before I imported the pages.
The page import reported some warnings because of broken internal links, but completed successfully.
Does anyone know why this might happen?