There is a bug in subscriptions.module at line 72 (4.3.0 version). That line is part of concatenating an SQL query:
$queryn .= "WHERE n.status = 1 AND s.uid = $account->uid AND s.stype = \"node\" ";
The problem is that whenever the PHPSESSID cookie is empty or not yet set, $account->uid is null. This happens anytime the visitor comes to the page for the first time, since the page that sets the cookie does not yet have access to the cookie. See PHP.net documentation:
Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.
I fixed this by editing the conditional for which the script begins putting together the SQL query. Currently, this line (line 67) reads:
if (is_null($subscriptions[$account->uid])) {
I changed this to:
if ((is_null($subscriptions[$account->uid]))&&(!is_null($account->uid))) {
The result is that if there is no valid user ID for line 72, the query is skipped entirely. I haven't poked around the module enough to really be sure how subscriptions.module works in its entirety, so I'm not sure, but I would assume that $subscriptions[$account->uid] is a separate variable from $account->uid. I hope this fix doesn't entirely break the module, but perhaps the module authors can address this in future versions and/or patches. In the meantime, I will post the original error messages below, so that anyone else who encounters this problem might be able to turn this thread up in a search.