diff --git a/classes/logger.php b/classes/logger.php
index ef77c7a05366b2eef20a1c736518d16e328a11ea..864b66743a8994cf14e810db1e94ed1e333cc947 100755
--- a/classes/logger.php
+++ b/classes/logger.php
@@ -38,7 +38,7 @@ class Logger {
 		return self::get_instance()->_log($errno, $errstr, $context);
 	}
 
-	private function _log($errno, $errstr, $context = "") {
+	private function _log(int $errno, string $errstr, $context = "") {
 		if ($this->adapter)
 			return $this->adapter->log_error($errno, $errstr, '', 0, $context);
 		else
diff --git a/classes/logger/sql.php b/classes/logger/sql.php
index f88621fbe4b19d3ad6266a4fb9d3e143913a85aa..d21934aa692c5722421d95c7ca2adc5a83a3c00a 100755
--- a/classes/logger/sql.php
+++ b/classes/logger/sql.php
@@ -32,10 +32,14 @@ class Logger_SQL implements Logger_Adapter {
 			$errstr = UConverter::transcode($errstr, 'UTF-8', 'UTF-8');
 			$context = UConverter::transcode($context, 'UTF-8', 'UTF-8');
 
+			// can't use $_SESSION["uid"] ?? null because what if its, for example, false? or zero?
+			// this would cause a PDOException on insert below
+			$owner_uid = !empty($_SESSION["uid"]) ? $_SESSION["uid"] : null;
+
 			$sth = $this->pdo->prepare("INSERT INTO ttrss_error_log
 				(errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES
 				(?, ?, ?, ?, ?, ?, NOW())");
-			$sth->execute([$errno, $errstr, $file, $line, $context, $_SESSION["uid"] ?? null]);
+			$sth->execute([$errno, $errstr, $file, (int)$line, $context, $owner_uid]);
 
 			return $sth->rowCount();
 		}
diff --git a/classes/userhelper.php b/classes/userhelper.php
index 4edcaf36813a7fa5f4092230a1f24aaade4d7252..998dec507f285b477915e8cac36081d44f0459b6 100644
--- a/classes/userhelper.php
+++ b/classes/userhelper.php
@@ -97,7 +97,8 @@ class UserHelper {
 			startup_gettext();
 			self::load_user_plugins($_SESSION["uid"]);
 		} else {
-			if (!\Sessions\validate_session()) $_SESSION["uid"] = false;
+			if (!\Sessions\validate_session())
+				$_SESSION["uid"] = null;
 
 			if (empty($_SESSION["uid"])) {