diff --git a/spec/controller/catch_all_spec.rb b/spec/controller/catch_all_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/controller/catch_all_spec.rb
+++ b/spec/controller/catch_all_spec.rb
@@ -94,6 +94,23 @@ describe "Stealth::Controller::CatchAll" do
       expect($redis.get(controller.current_session.session_key)).to eq('vader->my_action')
     end
 
+    it "should release the session lock after the maximum number of catch_all levels have been reached" do
+      allow(controller).to receive(:fetch_error_level).and_return(1, 2, 3, 4)
+      session = Stealth::Session.new(id: controller.current_session_id)
+      session.set_session(new_flow: 'vader', new_state: 'my_action')
+      expect(controller).to receive(:release_lock!)
+      controller.run_catch_all
+      controller.run_catch_all
+      controller.run_catch_all
+      controller.run_catch_all
+    end
+
+    it "should release the session lock if the bot does not have a CatchAll flow" do
+      FlowMap.flow_spec[:catch_all] = nil
+      expect(controller).to receive(:release_lock!)
+      controller.run_catch_all
+    end
+
     it "should NOT run the catch_all if do_nothing is called" do
       controller.current_session.set_session(new_flow: 'vader', new_state: 'my_action3')
       controller.action(action: :my_action3)
Release the locks after running the catch_all