diff --git a/main.cpp b/main.cpp
index 0801da3..b4382b7 100644
--- a/main.cpp
+++ b/main.cpp
@@ -458,7 +458,7 @@ protected:
         bool is_online;
         {
             const auto& client_status = data["client_status"];
-            if (client_status.isArray() && !client_status.getMemberNames().empty()) {
+            if (client_status.isObject() && !client_status.empty()) {
                 const auto device = client_status.getMemberNames()[0];
                 status_str = "[\""+client_status[device].asString()+"\", \""+device+"\"]";
                 is_online = true;
@@ -520,14 +520,20 @@ protected:
         } else if (intent == "CHANNEL_UPDATE") [[unlikely]] {
             if (cache.store(data).changed) cache.store(std::move(data));
         } else if (intent == "CHANNEL_DELETE") [[unlikely]] {
-            insertChannelDelete(data["id"]);
+            const auto& guild_id = data["guild_id"];
+            if (guild_id.isString()) {
+                insertChannelDelete(guild_id);
+            }
         }
         else if (intent == "GUILD_MEMBER_ADD" || intent == "GUILD_MEMBER_UDATE") [[unlikely]] {
             auto guild_id = std::move(data["guild_id"]);
             updateMember(std::move(data), guild_id.asString());
         } else if (intent == "GUILD_MEMBER_REMOVE") [[unlikely]] {
-            const auto& user_data = cache.store(data["user"]).data;
-            insertMemberDelete(user_data["id"], data["guild_id"]);
+            const auto& user_data = data["user"];
+            if (user_data["username"].isString()) {
+                cache.store(user_data);
+                insertMemberDelete(user_data["id"], data["guild_id"]);
+            }
         }
         else if (intent == "VOICE_STATE_UPDATE") {
             updateMemberVoiceConnection(std::move(data));
@@ -563,7 +569,7 @@ int main(int argc, char **argv) {
     // Set up client
     auto client = std::make_shared<MyClient>(io, Discord::Settings{
                                                  .bot_token = argv[1],
-                                                 .intents = Discord::intents::all,
+                                                 .intents = Discord::intents::all & ~Discord::intents::direct_messages,
                                                  .is_bot = false
                                              });
     client->detach();