diff --git a/lib/discordrb/bot.rb b/lib/discordrb/bot.rb
index <HASH>..<HASH> 100644
--- a/lib/discordrb/bot.rb
+++ b/lib/discordrb/bot.rb
@@ -517,6 +517,11 @@ module Discordrb
       handle_dispatch(type, data)
     end
 
+    # Raises a heartbeat event. Called by the gateway connection handler used internally.
+    def raise_heartbeat_event(event)
+      raise_event(event)
+    end
+
     private
 
     # Throws a useful exception if there's currently no gateway connection
diff --git a/lib/discordrb/gateway.rb b/lib/discordrb/gateway.rb
index <HASH>..<HASH> 100644
--- a/lib/discordrb/gateway.rb
+++ b/lib/discordrb/gateway.rb
@@ -353,6 +353,7 @@ module Discordrb
             # suspended (e.g. after op7)
             if (@session && !@session.suspended?) || !@session
               sleep @heartbeat_interval
+              @bot.raise_heartbeat_event(Discordrb::Events::HeartbeatEvent.new(self))
               heartbeat
             else
               sleep 1
Reintroduces heartbeat events that were lost in the gateway update