Missing "Log-In" button on error pages


This is a UX bug for the workflow described below:

  • An external website links to a private category.
  • A user of that website clicks on the link and is taken to discourse.example.com
  • Since the category is private and if the user is not logged in, the user receives a page with the following error: “Oops! That page doesn’t exist or is private.”
  • The error page does not tell the user to log-in to view private categories, nor does the website header have a “Log-In” button (like regular discourse pages do).

You can see the difference in page header for unauthenticated users on error pages vs regular ones by visiting: discourse - Demo (regular page) vs. https://try.discourse.org/c/private-category

Workaround: User must go to a different discourse page (eg. the homepage), log-in by clicking the “Log-In” button in the page header and then reopen the link again after having logged in.

This makes for a particularly frustrating experience for users who are new to discourse since it is not immediately obvious what action they need to take. The incidence of this is particularly high for users who are are using it in a mixed setting where discourse links are scattered and cross-referenced across wikis, slack, other website pages etc.


  • The error page should be more explicit on how to access private pages for unauthenticated users.
  • The error page should have a “Log-In” button in the header.

I’m not quite sure if there are particular reasons by the error page is treated differently from the rest of the pages (performance? different code-path?), but if this was a thought through decision, it’d be great if someone could shed light upon the matter.

If not, and the fixes I’ve proposed are acceptable, please let me know what I can do to fix it (happy to submit a PR, but need some help on where to start in the code-base).


@codinghorror what is your call here?

  • Facebook, Stack Overflow, Instagram have clear login buttons and sign up buttons on all error pages. (you can test by pasting in https://www.instagram.com/$$$/ and so on in a anonymous browser)

  • Twitter is a bit weird in that it has a vanilla kind of page with a link home

I think it probably makes sense to show login/signup button on error page, but how far do we want to take this? cause full user menu is going to be tricky for a non JS page.


Yes the sign up / login buttons should definitely appear but we do not care about the full user menu here.


@techAPJ can you investigate this, we definitely do not want to add any special JS payload to our “no ember” pages, but it would be nice to have a minimal sign up / login (even though we will have to duplicate some of the client logic to support this)

I don’t mind if clicking on the button does a full page reload for now and takes you to sitename/signup or something.


We now have sign up and login button for anonymous users on “no ember” pages.