Page not found after renaming with ++ in page title

XWiki 12.10.3
I’ve got two questions:
Q1: I have a page that appears in the navigation and in the wiki index, but I cannot perform any action on the page, e.g. delete, copy, or open the page. Any access attempt results in http 404, not found, page has been removed, had its name changed, or is temporarily unavailable.
How can I delete or recover or otherwise resolve this?

Q2: I can recreate another page with the same issue. Create page with title “This is a page title with C++ in the title field”. Is it possible to have a page with “++” in the title field?

Any error in the xwiki logs?

Would this page contain / or \ characters and would you be using Tomcat for example? In which case, see https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/InstallationWAR/InstallationTomcat/#HAllowing222F22and225C22inpagenames

Could you provide the name of that page?

Yes that should work fine. See This is a page title with C++ in the title field (Sandbox.This is a page title with C in the title field.WebHome) - XWiki (will be removed tonight).

Any possibility to share the reference of the page and the URL generated for it if it’s not too sensitive ? Do you get an XWiki error (which the XWiki skin) in that case, or a proxy or application server error ?

I need to talk to my colleagues about logs, I will get back on this.

There are no / \ characters,

This is the page URL from copy link from the navigation panel:
https://techhub.gloryglobalsolutions.com/bin/view/Holding%20Bin/XX%2001234567890%20%20C%2B%2B%20test/

and the URL shown after navigation is

404 - File or directory not found. (gloryglobalsolutions.com)

There was no xwiki UI error reported when I created page or renamed a page. I will discus proxy / application server error with my colleague later today.

Indeed, I agree with Thomas that it looks like a proxy/webserver config error somewhere.

I think Apache HTTPd has a “security” like this by default with escaped ‘+’ characters.

The issue appears to be caused by IIS (v10). If I add to IIS web.config
requestFiltering allowDoubleEscaping=“True”

I can then create and access pages that have ++ in the title.

But I am left with the issue that in the navigation and in the wiki index it shows a page from before, e.g. “test c++” and when I click it it says page not found. If I create the page I get a duplicate in the navigation (both of which navigate to my new page) but when I delete the page, it only deletes one from the navigation leaving me with a link that does not load a page. I would like to recover the old page but its not essential, has anyone got a suggestion for how to remove this broken link?

You might want to take a look at Delete page programmatically (Extension.Delete page programatically.WebHome) - XWiki.

It’s a lot of code mostly because of the UI but deleting a document programmatically is essentially:

{{velocity}}
$xwiki.getDocument('Holding Bin.XX 01234567890  C++ test.WebHome').delete()
{{/velocity}}

You can use similar script to get back any metadata from the document (like its content), for example:

{{velocity}}
{{code language="none"}}
$xwiki.getDocument('Holding Bin.XX 01234567890  C++ test.WebHome').content
{{/code}}
{{/velocity}}

See https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/Scripting/ for more about how to write scripts in XWiki.

The script worked for showing the content of the C++ test page, and it deleted it. It would not work for the page that I first encountered the issue on.

I’ve fixed it by deleting “holding bin” and checking “affect children”. I suspect there is / was another issue with this page.

Its been a useful learning exercise, thanks for the help.

I spoke too soon. While the above “fixed” my previous issues I quickly ran into trouble redoing the pages.

I think there are three issues:

In my wiki I create a page “link page”. I will create my “test C++ page” under this. When it breaks, I can delete “link page” with “affect children” and then restart.

#1) From “link page”
Edit page. Add text “Test C++ page”. Select text, create link. Accept the proposed page name “Test C++ page”. Save and view. The link is displayed with ? because the page does not exist. Click the link, accept default blank page template with “create”, the new page is titled “Test C_ _ _page” (3 spaces between C and page) *. Correct the page title to “Test C++ page”, save and view.

The page loads from navigation OK.

The link in “link page” is broken. Edit link page, edit the link, make sure the correct page is selected. Everything now works OK.

Issue*: When I clicked the link to create page “Test C++ page”, the ++ should not have been replaced with space space.

Delete link page with affect children.

#2) From “link page”. Edit page. Add text “Test C++ page”. Select text, create link. Accept the proposed page name “Test C++ page”. Save and view. The link is displayed with ? because the page does not exist. Click the link, accept default blank page template with “create”, the new page is titled “Test C_ _ page” (3 spaces between C and page). Accept the page title as “Test C _ _page”, save and view.

The page loads from navigation OK.

The link in “link page” is broken. Edit link page, edit link. Fixed.

Issue: The link should either reference the given page name “Test C++ page” or the “renamed” page “Test C_ _ _page”, but it appears to reference neither?

#3) Following on from issue #2. The page loads from navigation and the link page link is working.
Load Test “C_ _ _page”, select move / rename. In “new title” set “Test C++ page” and click rename.
Rename status appears to indicate success.

Select link “Test C++ page” in the navigation – page is not found
Load link page, click the link to “test C++ page” – page is not found

The page is lost. The link in link page can be unlinked and relinked to “Test C++ page” but an attempt to follow that link results in page not found. I have not found a way to recover that page. The script above to get “content” produces and empty result.

This issue #3 hurts most, am I using move / rename correctly?

Is this + issue a problem in xwiki or is it likely to be in my configuration, setup, etc? (Or user error?)

It’s not an xwiki problem, xwiki works fine with + in wiki pages.