diff --git a/lib/perfectqueue/backend/rdb_compat.rb b/lib/perfectqueue/backend/rdb_compat.rb
index <HASH>..<HASH> 100644
--- a/lib/perfectqueue/backend/rdb_compat.rb
+++ b/lib/perfectqueue/backend/rdb_compat.rb
@@ -319,8 +319,6 @@ SQL
               raise PreemptedError, "task key=#{key} does not exist or preempted."
             elsif row[:created_at] == nil
               raise PreemptedError, "task key=#{key} preempted."
-            elsif row[:created_at] <= 0
-              raise CancelRequestedError, "task key=#{key} is cancel requested."
             else # row[:timeout] == next_timeout
               # ok
             end
diff --git a/spec/rdb_compat_backend_spec.rb b/spec/rdb_compat_backend_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/rdb_compat_backend_spec.rb
+++ b/spec/rdb_compat_backend_spec.rb
@@ -329,8 +329,8 @@ describe Backend::RDBCompatBackend do
         db.submit(key, 'test', nil, {})
         db.cancel_request(key, options)
       end
-      it 'raises PreemptedError' do
-        expect{db.heartbeat(task_token, 0, {})}.to raise_error(CancelRequestedError)
+      it 'returns nil' do
+        expect( db.heartbeat(task_token, 0, {}) ).to be_nil
       end
     end
   end
Remove dead code in RDBCompatBackend#heartbeat

it updates rows WHERE id=key AND created_at IS NOT NULL,
but excluding created_at = 0, which means cancel_request.
Therefore the path won't be used.