ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.4k stars 2.29k forks source link

"Ranks" section of profile doesn't list plays #19152

Closed Gabixel closed 2 years ago

Gabixel commented 2 years ago

Type

Game behaviour

Bug description

Happens on my in-game profile. I don't know if it is related to #19146 since it only seems to happen in the "Ranks" section. The network.log seems to contain the problem (see below). I also wrote a message in the #lazer chat to quickly access the profile if you need it.

Screenshots or videos

image

Version

2022.716.1-lazer

Logs

network.log

Theighlin commented 2 years ago

I wanted to add that it seems to happen on a per user basis consistently, some load everything correctly, others load pinned scores only. Screenshot_2022-07-16-15-53-44-04_25a1a32208bbcdc1d450b7aa854bb161

Stedoss commented 2 years ago

I beleive this is because osu-web is sending the mods atribute as an object instead of a string. When making a request (eg. https://osu.ppy.sh/api/v2/users/7562902/scores/firsts) to osu-web with the header of x-api-version: 20220705 (which seems to be what the osu! client is sending), it is returning this for the mods attribute:

"mods": [
    {
        "acronym": "HD",
        "settings": {}
    },
    {
        "acronym": "DT",
        "settings": {}
    }
],

When it is expecting a string in the model - https://github.com/ppy/osu/blob/5b9be3e682649abbdbd5d02edb8f2b8e515e3b92/osu.Game/Online/API/Requests/Responses/APIScore.cs#L73-L74

Not too sure, but I assume the osu-web commit that is relevant is this: - https://github.com/ppy/osu-web/commit/70c78bef7478b71a045dba7e3015d1c35e65aac7 - as sending x-api-version: 20220704 returns the mods in a string array format.