Repliacated and tested on my device, Workaround doesn't help, because even accessing minecraft.net in this scenario throws empty page with 404 error, with no possibility to change language. If you access https://www.minecraft.net/en-us , it doesnt work either, because changing your language to english doesn't trigger language change event on your site (cookie 'language_url' is not being set, actual language is same as required).
Way to replicate in google chrome:
in chrome, go to settings->advanced->languages and add czech language there
delete all other languages
delete "language_url" cookie on minecraft.net
refresh page (links no more have language information inside)
access minecraft.net site (blank page, 404 error thrown)
Fastest workaround:
access minecraft.net/en-us
click accept cookies (top right corner)
page now works
UPDATE: On some devices even this workaround fails, on those works workaround defined in top of this issue, but with minecraft.net/en-us site used instead.
Fix:
don't use cookies as language holder until consent is given
without language_url cookie set, use language in current url
while accesing page without language in url, currently you are using first mach by prefered languages sent in header with languages supported by site. There is missing case, when that match is not found and then minecraft throws white page error
1 year ago, when I first encountered this bug, I found this post, and told myself... Okay, they know about it... Well, i was wrong. So:
What doesn't work:
Access main site: Minecraft.net -> no redirect thrown, error is already seen above
Clicking any link on page -> links are being generated without "/en-us" language info, so links don't work either
Updating anything on profile (skin, name) -> links in form are again beign generating without "/en-us" language info
registration of new users -> same reason as above
Why does this happen:
I'm user from Czech republik with installed windows with czech localization
I'm using Google chrome broser
Browsers automaticaly takes language information and sending them in header requests to website
In my case there is: "accept-language: cs-CZ,cs;q=0.9"
Server is unable to handle it correctly and generates wrong links
What are bad fixes:
Use another browser -> yes, I can run it in firefox successfully, but why would i do that, when i want have saved in history access to it
Change your browser setting -> I don't want to change my setting just to access successfully one website, to destroy my localization on another
Use annonimou window -> not solves the problem
My idea, where is the problem:
minecraft.net had historicaly had czech localization, my gues is, that when it were being removed, it wasn't removed fully and now server tryes to load missing language file, which resumes in error, which is hidden behind the 404 error
So please, fix it....
I would also make higher priority, because users using chrome browser (currently the most used web browser) on windows (currently the most used computer operation system) aren't able to access your site for nearly 2 years from Czech Republik (maybe even more countries) and also arent able to buy minecraft (what is something you should be concerned)
This error is same as in WEB-3300 (same cause).
Way to replicate in google chrome:
in chrome, go to settings->advanced->languages and add czech language there
delete all other languages
delete "language_url" cookie on minecraft.net
refresh page (links no more have language information inside)
access minecraft.net site (blank page, 404 error thrown)
Fastest workaround:
access minecraft.net/en-us
click accept cookies (top right corner)
page now works
Fix:
don't use cookies as language holder until consent is given
without language_url cookie set, use language in current url
while accesing page without language in url, currently you are using first mach by prefered languages sent in header with languages supported by site. There is missing case, when that match is not found and then minecraft throws white page error