diff --git a/src/discordclientfactory.ts b/src/discordclientfactory.ts
index 0cc6a194bc4ea267419da9f73fe3309f12f46fa6..d6e3acd471d50686ab310094d3c228788f7f1fda 100644
--- a/src/discordclientfactory.ts
+++ b/src/discordclientfactory.ts
@@ -37,19 +37,22 @@ export class DiscordClientFactory {
         return Promise.resolve(this.clients.get(userId));
       }
       return this.store.get_user_token(userId).then((token) => {
+        if (token === null) {
+          Promise.resolve(this.botClient);
+        }
         client = Bluebird.promisifyAll(new Client({
           fetchAllMembers: true,
           sync: true,
         }));
         log.verbose("ClientFactory", "Got user token. Logging in...");
-        return client.login(token);
-      }).then(() => {
-        log.verbose("ClientFactory", "Logged in. Storing ", userId);
-        this.clients.set(userId, client);
-        return Promise.resolve(client);
-      }).catch((err) => {
-        log.warn("ClientFactory", `Could not log ${userId} in.`, err);
-      })
+        return client.login(token).then(() => {
+          log.verbose("ClientFactory", "Logged in. Storing ", userId);
+          this.clients.set(userId, client);
+          return Promise.resolve(client);
+        }).catch((err) => {
+          log.warn("ClientFactory", `Could not log ${userId} in.`, err);
+        })
+      });
       // Get from cache
     }
     return Promise.resolve(this.botClient);