diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js
index 29eb6603c9..2256b6b905 100644
--- a/src/controllers/authentication.js
+++ b/src/controllers/authentication.js
@@ -350,10 +350,12 @@ authenticationController.onSuccessfulLogin = async function (req, uid) {
 		});
 		await Promise.all([
 			user.auth.addSession(uid, req.sessionID),
-			(uid > 0) ?	db.setObjectField('uid:' + uid + ':sessionUUID:sessionId', uuid, req.sessionID) : null,
 			user.updateLastOnlineTime(uid),
 			user.updateOnlineUsers(uid),
 		]);
+		if (uid > 0) {
+			await db.setObjectField('uid:' + uid + ':sessionUUID:sessionId', uuid, req.sessionID);
+		}
 
 		// Force session check for all connected socket.io clients with the same session id
 		sockets.in('sess_' + req.sessionID).emit('checkSession', uid);
diff --git a/src/user/auth.js b/src/user/auth.js
index bc7126dad2..da8551d831 100644
--- a/src/user/auth.js
+++ b/src/user/auth.js
@@ -82,6 +82,9 @@ module.exports = function (User) {
 
 	async function cleanExpiredSessions(uid) {
 		const uuidMapping = await db.getObject('uid:' + uid + ':sessionUUID:sessionId');
+		if (!uuidMapping) {
+			return;
+		}
 		const expiredUUIDs = [];
 		const expiredSids = [];
 		await Promise.all(Object.keys(uuidMapping).map(async (uuid) => {