diff --git a/html/src/app.js b/html/src/app.js
index 3d24b4f0c..78ead1754 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -490,6 +490,17 @@ speechSynthesis.getVoices();
this.$emit('AUTOLOGIN');
throw new Error('401: Missing Credentials');
}
+ if (
+ status === 401 &&
+ data.error.message === '"Unauthorized"' &&
+ endpoint !== 'auth/user'
+ ) {
+ // trigger 2FA dialog
+ if (!$app.twoFactorAuthDialogVisible) {
+ $app.API.getCurrentUser();
+ }
+ throw new Error('401: Unauthorized');
+ }
if (status === 403 && endpoint.substring(0, 6) === 'config') {
$app.$alert(
'VRChat currently blocks most VPNs. Please disable any connected VPNs and try again.',
diff --git a/html/src/repository/database.js b/html/src/repository/database.js
index 70ccbe76c..799ccbf99 100644
--- a/html/src/repository/database.js
+++ b/html/src/repository/database.js
@@ -800,7 +800,7 @@ class Database {
row.$isExpired = true;
}
notifications.unshift(row);
- }, `SELECT * FROM ${Database.userPrefix}_notifications ORDER BY id DESC LIMIT ${Database.maxTableSize}`);
+ }, `SELECT * FROM ${Database.userPrefix}_notifications ORDER BY created_at DESC LIMIT ${Database.maxTableSize}`);
return notifications;
}