I had a problem with invalid characters in URL, in this case it was a sign >
There is one outdated post that I can't post answer on: https://community.atlassian.com/t5/Confluence-questions/Change-URL-s-in-database/qaq-p/247617
Now is situation much cleaner in the database.
I did directly in the database:
mysql> SELECT * FROM CONTENT WHERE TITLE LIKE 'BAD_URL%';
mysql> UPDATE CONTENT SET LOWERTITLE='GOOD_URL' WHERE CONTENTID = 411888;
(of course, use CONTENTID number showing your url, and update the other versions of the page).
Now, the question is following, couldn't atlassian guys do a validation check while saving the page?
Either inform user that special characters can't be used in URL or escape/change such a character on the fly or both things in the same time.
Many users don't think about that as more focusing in making a descriptive title of the page, not thinking about generated URL.
Thanks