Reproduction Steps
Send a POST request (with X-CSRF-Token verification) to https://presence.roblox.com/v1/presence/users
with the following body:
{
"userIds": [
998796
]
}
This bug only appears to occur for certain user IDs - I’ve tested a few here:
User ID | Legacy API date | Presence API date |
---|---|---|
998796 | 2021-07-12T19:45:50.927-05:00 |
2008-09-06T00:16:31.08Z |
2819985011 | 2022-01-21T14:13:02.307-06:00 |
2021-08-18T18:01:37.723Z |
292222536 | 2022-01-18T17:32:49.447-06:00 |
2017-04-24T21:12:41.25Z |
13268404 | 2021-12-01T18:27:58.09-06:00 |
2010-11-29T21:07:27.29Z |
21557 | 2021-04-21T14:33:35.447-05:00 |
2007-04-24T15:45:26.153Z |
Expected Behavior
The response should accurately represent the user’s presence information and last online date.
Actual Behavior
The following information is returned by the presence endpoint:
{
"userPresences": [
{
"userPresenceType": 0,
"lastLocation": "Website",
"placeId": null,
"rootPlaceId": null,
"gameId": null,
"universeId": null,
"userId": 998796,
"lastOnline": "2008-09-06T00:16:31.08Z"
}
]
}
The lastOnline
field is identical to their join date, which you can verify by sending a GET request to https://users.roblox.com/v1/users/998796
:
{
"description": "",
"created": "2008-09-06T00:16:31.08Z",
"isBanned": false,
"externalAppDisplayName": null,
"id": 998796,
"name": "Templates",
"displayName": "Templates"
}
The Presence API claims that the user has not been online since the exact moment their account was created.
On the other hand, the legacy https://api.roblox.com/Users/{userId}/OnlineStatus
API endpoint returns what appears to be more accurate information:
{
"GameId": null,
"IsOnline": false,
"LastLocation": "Creating Baseplate",
"LastOnline": "2021-07-12T19:45:50.927-05:00",
"LocationType": 3,
"PlaceId": 95206881,
"VisitorId": 998796,
"PresenceType": 0,
"UniverseId": null,
"Visibility": 0
}
The legacy API claims the user was last online when editing the Baseplate template just last year, but the Presence API which claims the user was last online in 2008.
Workaround
Use the legacy https://api.roblox.com/Users/{userId}/OnlineStatus
endpoint rather than the newer presence endpoint. This is not a complete workaround as it only accepts one user ID at once, while the newer API is a multiget request.
Issue Area: Roblox Website
Page URL: https://presence.roblox.com/v1/presence/users
Impact: High
Frequency: Constantly
Date First Experienced: 2021-10-14 00:10:00 (-04:00)