diff --git a/quiche/quic/moqt/moqt_live_relay_queue.h b/quiche/quic/moqt/moqt_live_relay_queue.h
index 0ecb671..3ac41dd 100644
--- a/quiche/quic/moqt/moqt_live_relay_queue.h
+++ b/quiche/quic/moqt/moqt_live_relay_queue.h
@@ -82,8 +82,6 @@
   const FullTrackName& GetTrackName() const override { return track_; }
   std::optional<PublishedObject> GetCachedObject(
       Location sequence) const override;
-  std::vector<Location> GetCachedObjectsInRange(Location start,
-                                                Location end) const override;
   void AddObjectListener(MoqtObjectListener* listener) override {
     listeners_.insert(listener);
     listener->OnSubscribeAccepted();
@@ -121,6 +119,9 @@
     }
   }
 
+  std::vector<Location> GetCachedObjectsInRange(Location start,
+                                                Location end) const;
+
  private:
   // The number of recent groups to keep around for newly joined subscribers.
   static constexpr size_t kMaxQueuedGroups = 3;
diff --git a/quiche/quic/moqt/moqt_outgoing_queue.h b/quiche/quic/moqt/moqt_outgoing_queue.h
index c6302fb..bcb7f5b 100644
--- a/quiche/quic/moqt/moqt_outgoing_queue.h
+++ b/quiche/quic/moqt/moqt_outgoing_queue.h
@@ -56,8 +56,6 @@
   const FullTrackName& GetTrackName() const override { return track_; }
   std::optional<PublishedObject> GetCachedObject(
       Location sequence) const override;
-  std::vector<Location> GetCachedObjectsInRange(Location start,
-                                                Location end) const override;
   void AddObjectListener(MoqtObjectListener* listener) override {
     listeners_.insert(listener);
     listener->OnSubscribeAccepted();
@@ -98,6 +96,9 @@
   // Sends an "End of Track" object.
   void Close();
 
+  std::vector<Location> GetCachedObjectsInRange(Location start,
+                                                Location end) const;
+
  private:
   // The number of recent groups to keep around for newly joined subscribers.
   static constexpr size_t kMaxQueuedGroups = 3;
diff --git a/quiche/quic/moqt/moqt_publisher.h b/quiche/quic/moqt/moqt_publisher.h
index 9d8950c..260beaa 100644
--- a/quiche/quic/moqt/moqt_publisher.h
+++ b/quiche/quic/moqt/moqt_publisher.h
@@ -147,11 +147,6 @@
   virtual std::optional<PublishedObject> GetCachedObject(
       Location sequence) const = 0;
 
-  // Returns a full list of objects available in the cache, to be used for
-  // SUBSCRIBEs with a backfill. Returned in order of worsening priority.
-  virtual std::vector<Location> GetCachedObjectsInRange(Location start,
-                                                        Location end) const = 0;
-
   // TODO: add an API to fetch past objects that are out of cache and might
   // require an upstream request to fill the relevant cache again. This is
   // currently done since the specification does not clearly describe how this
diff --git a/quiche/quic/moqt/tools/moqt_mock_visitor.h b/quiche/quic/moqt/tools/moqt_mock_visitor.h
index d45c99a..a5d4afb 100644
--- a/quiche/quic/moqt/tools/moqt_mock_visitor.h
+++ b/quiche/quic/moqt/tools/moqt_mock_visitor.h
@@ -66,8 +66,6 @@
 
   MOCK_METHOD(std::optional<PublishedObject>, GetCachedObject,
               (Location sequence), (const, override));
-  MOCK_METHOD(std::vector<Location>, GetCachedObjectsInRange,
-              (Location start, Location end), (const, override));
   MOCK_METHOD(void, AddObjectListener, (MoqtObjectListener * listener),
               (override));
   MOCK_METHOD(void, RemoveObjectListener, (MoqtObjectListener * listener),
