       case 0, 2, 4:
         let guildId = GuildID(data["guild_id"] as! String)!
         let channelId = ChannelID(data["id"] as! String)!
-        let channel = self.sword.guilds[guildId]!.channels[channelId] as! Updatable
+        guard let channel = self.sword.guilds[guildId]!.channels[channelId] as? Updatable else {
+          return
+        }
         channel.update(data)
         self.sword.emit(.channelUpdate, with: channel)
           

    /// GUILD_UPDATE
    case .guildUpdate:
      let guildId = GuildID(data["id"] as! String)!
      let guild = self.sword.guilds[guildId]!
      guild.update(data) 
      self.sword.emit(.guildUpdate, with: guild)


        timeIntervalSince1970: Double(data["timestamp"] as! Int)
      )
      #endif
      let channelId = ChannelID(data["channel_id"] as! String)!
      guard let channel = self.sword.getChannel(for: channelId) else {
        return
      }
      let userId = UserID(data["user_id"] as! String)!
      self.sword.emit(.typingStart, with: (channel, userId, timestamp))

    /// USER_UPDATE
    case .userUpdate:
