As initially described in https://github.com/HabitRPG/habitica/issues/9279, the class change modal can re-appear multiple times inappropriately. This is probably just a specific case of the general problem with modals doing that, but it's especially damaging for the class change modal since it unfairly causes users to spend gems, so I'm marking this as a high priority.
I logged that issue in the description of 9279. There is a confirmation modal on the gems, which is why I didn't up to important.
I had edited that issue to say that I had copied this part to here.
Even with the confirmation, this is more important than the other parts of that issue. Users sometimes think the first class change didn't take effect so they think they need to confirm it again. Even if they don't confirm it's a significant point of confusion and annoyance. From my testing, the only way to get rid of the extra modals if you don't know that you should reload is to either opt out of the class system or select a class and then cancel the confirmation step, which is not intuitive.
Just to confirm, I know the site well and still just thought the change hadn't taken, so lost extra gems. When sync errors are so common, it's not unreasonable to assume that.
sigh well I successfully managed to make the website eat my gems trying to just see what's happening here. It looks like the gems are automatically charged when the button is clicked to change class, not when the change class actually happens.
Also it looks like there's some weird behavior here where you can click the change class button for 3 gems and then opt out and then can opt back in for free and pick any class. Does it make sense for opting out and opting in to cost gems? My feeling here is it would be better to allow users to opt in and out freely and only charge gems when an actual class change is detected. This may be more difficult because depending on how the "opted out warrior" class works, it may be necessary to keep track of what the class was before the user opted out.
Anyways, the above may be a way to help mitigate the modal popping up multiple times and help people to not accidentally lose gems.
In investigating the modal popping up, I'm able to consistently replicate the modal issue by following these steps which should help with determining the root cause and ensuring the fix takes:
Change Class, Refund Stat Points -> this charges you 3 gems regardless of whether or not the class actually changesShow Bailey@paglias @TheHollidayInn may be able to use the above steps to confirm wether or not the solution #10018 fixes the problem. If not, I can spend some time researching what's happening here.
As a note, it appears you can do the above steps with other modals. It also works with the Fix Character Values in place of clicking Show Bailey.
Mods/admin can replace gems, if you give us your user ID. :)
You guys are the best! :)
2a4d30ee-4833-420e-be7c-ad6a6e261c5f
How many times did you lose gems? Just the once, or did you try a couple of times?
Just the once, it was only three gems.
Done, with a couple of extra to thank you for the extensive testing there! :)
I believe I have a fix for this. Pushing soon.
Hi! I'm pretty new to Habitica. I just hit level ten and chose the healer class. But every time I log in (on pc) it prompts me to choose my class again. I chose healer again and it said it would cost me 3 gems to change my class... so I did, and it took three gems, and continued asking me to choose a class. When I picked healer again, it said it would take 3 gems to change my class, so I cancelled (I think I only have two now lol).
In the help dropdown I clicked on 'report a bug' but nothing happened. So I think that's broken too??
@meiastar I'm sorry about that! The navigation menus can sometimes stop
working but if you reload the website they start again. If you post to the
Report a Bug guild briefly to say how many gems you lost from the class
change bug, we can see your Habitica account there and refund them.
Alternatively post your User ID here (from User Icon > Settings > API).
Reloading also stops the class change modal reappearing.
>
@Alys Thank you so much! :)
Most helpful comment
I had edited that issue to say that I had copied this part to here.
Even with the confirmation, this is more important than the other parts of that issue. Users sometimes think the first class change didn't take effect so they think they need to confirm it again. Even if they don't confirm it's a significant point of confusion and annoyance. From my testing, the only way to get rid of the extra modals if you don't know that you should reload is to either opt out of the class system or select a class and then cancel the confirmation step, which is not intuitive.