Unicode category slug cause 404 error

AI-generated summary

A 404 error occurs when editing a category with a Unicode slug. To reproduce: change/create a category with a Unicode slug, and attempt to edit the category settings. hawm has found that the error is not related to the unicode usernames setting, as it persists even when enabled. Additionally, setting allowed unicode username characters to \p{Han} does not resolve the issue. hawm discovered that changing the slug generation method to encoded fixes the problem, but this is not a desirable solution as it results in encoded topic URLs.

It’s happening on my production instance and development instance.

Reproduce step:

  1. Change/create a category with Unicode slug
  2. Try to edit the category setting
  3. You got a 404 error

Return of http://localhost:4200/c/测试/find_by_slug.json:

{
"errors": [
"The requested URL or resource could not be found."
],
"error_type": "not_found",
"extras": {
"html": "<div class=\"page-not-found\">\n  <h1 class=\"title\">Oops! That page doesn’t exist or is private.</h1>\n\n\n</div>\n\n\n\n<div class=\"row page-not-found-topics\">\n    <div class=\"recent-topics\">\n      <h2 class=\"recent-topics-title\">Recent</h2>\n        <div class='not-found-topic'>\n          <a href=\"/t/welcome-to-discourse/7\">Welcome to Discourse</a>\n        </div>\n      <a href=\"/latest\" class=\"btn btn-default\">More&hellip;</a>\n    </div>\n</div>\n\n\n  <div class=\"row\">\n    <div class=\"page-not-found-search\">\n      <h2>Search this site</h2>\n      <p>\n        <form action='/search' id='discourse-search'>\n          <input type=\"text\" name=\"q\" value=\"\">\n          <button class=\"btn btn-primary\">Search</button>\n        </form>\n      </p>\n    </div>\n  </div>\n\n  <link rel=\"preload\" href=\"/assets/onpopstate-handler.js?1621234483.753622\" as=\"script\">\n<script src=\"/assets/onpopstate-handler.js?1621234483.753622\"></script>\n\n"
}
}

Addition information:

  • Setting unicode usernames is disable
  • Keep happen even enable unicode usernames
  • allowed unicode username characters = \p{Han}

Change setting slug generation method to encoded fixed it, but I don’t really want an encoded slug for our topic URL

1 Like