[Bug]: Unable to Change User Info on Wii U (102-2421) if the user previously changed their birth date to the year 0000
Checked Existing
- [x] I have checked the repository for duplicate issues.
What happened?
If a Pretendo user has changed their birth date to the year 0000, any subsequent attempt to 'Change User Information' with this user (via the Wii U menu) will result in a 102-2421 error (appearing after the correct password has been entered) and the Wii U refusing to launch the Account Settings applet.
What did you expect to happen?
The account server and/or the Change User Info page should reject any attempt to set the birth date to year 0000
Steps to reproduce?
- Sign in to a Pretendo user on Wii U
- Tap the Mii in the corner and select Change User Information
- Enter the password if prompted
- In the birth date field, type
0000-11-22(or any valid formatted date starting with0000) - Acknowledge the warning pop-up. You are changing the birth date at your own risk and it won't be possible to change it back afterwards by any "easy" means.
- Submit the form and close the page
From now on, just redo the first 3 steps to observe error 102-2421
Other relevant information. (OPTIONAL)
I've seen two users report this issue on Discord - one of them got around it using mitmproxy to "replace the birthyear in the response". Using the same trick, I was able to both reproduce this issue and bypass it, opening the door for a more thorough testing.
The 102-2421 error (in this case) is related to the response to GET /v1/api/people/@me/profile:
<?xml version="1.0"?>
<person>
<active_flag>Y</active_flag>
<birth_date>0000-11-22</birth_date>
...
</person>
The <birth_date> is in the expected YYYY-MM-DD format, yet the Wii U treated it as invalid. After trying out various different date responses, it seems that the Wii U will also reject any date containing a number (day, month, and/or year number) that equals zero; thus it allows 0001-01-01 but not 0000-01-01.
This issue does not impact the 3DS' NNID settings app, nor does either console family care about the birth date being outright invalid (e.g., 1900-99-99). Opening Juxt (on the prod server) still works, though (for science's sake) I have gotten it to show "Invalid Date" in lieu of the birthday on the user page.