diff --git a/config/feature_flags/development/bulk_add_on_assignment_refresh_worker.yml b/config/feature_flags/development/bulk_add_on_assignment_refresh_worker.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b87026cb2df81203f6292042f85f22022df3b1cd
--- /dev/null
+++ b/config/feature_flags/development/bulk_add_on_assignment_refresh_worker.yml
@@ -0,0 +1,8 @@
+---
+name: bulk_add_on_assignment_refresh_worker
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134223
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/428258
+milestone: '16.5'
+type: development
+group: group::purchase
+default_enabled: false
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index a35ab8f1a89b29ae8f74311a9c4fdd1d250a509d..e2e5c37aa4362857ed420a7f1a33099dbb9d14e4 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -887,7 +887,7 @@
     Settings.cron_jobs['gitlab_subscriptions_schedule_refresh_seats_worker']['job_class'] = 'GitlabSubscriptions::ScheduleRefreshSeatsWorker'
     Settings.cron_jobs['gitlab_subscriptions_add_on_purchases_schedule_bulk_refresh_user_assignments_worker'] ||= {}
     Settings.cron_jobs['gitlab_subscriptions_add_on_purchases_schedule_bulk_refresh_user_assignments_worker']['cron'] ||= "0 */4 * * *"
-    Settings.cron_jobs['gitlab_subscriptions_add_on_purchases_schedule_bulk_refresh_user_assignments_worker']['job_class'] = 'GitlabSubscriptions::AddOnPurchases::BulkRefreshUserAssignmentsWorker'
+    Settings.cron_jobs['gitlab_subscriptions_add_on_purchases_schedule_bulk_refresh_user_assignments_worker']['job_class'] = 'GitlabSubscriptions::AddOnPurchases::ScheduleBulkRefreshUserAssignmentsWorker'
     Settings.cron_jobs['click_house_events_sync_worker'] ||= {}
     Settings.cron_jobs['click_house_events_sync_worker']['cron'] ||= "*/3 * * * *"
     Settings.cron_jobs['click_house_events_sync_worker']['job_class'] = 'ClickHouse::EventsSyncWorker'
diff --git a/ee/app/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker.rb b/ee/app/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker.rb
index 5357f492a4b1bc7061a9242ae684ce06bb4ee2da..4a4e52d4c8d4d2dc27d1ce0576070ed2ebc3c825 100644
--- a/ee/app/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker.rb
+++ b/ee/app/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker.rb
@@ -15,7 +15,7 @@ class BulkRefreshUserAssignmentsWorker
       MAX_RUNNING_JOBS = 10
 
       def perform_work
-        return unless Feature.enabled?(:hamilton_seat_management)
+        return unless Feature.enabled?(:bulk_add_on_assignment_refresh_worker)
 
         return unless ::Gitlab::CurrentSettings.should_check_namespace_plan?
 
@@ -27,6 +27,9 @@ def perform_work
       end
 
       def remaining_work_count(*_args)
+        # make sure we stop enqueuing these jobs when the FF is disabled, as the DB column will no longer get updated
+        return 0 unless Feature.enabled?(:bulk_add_on_assignment_refresh_worker)
+
         add_on_purchases_requiring_refresh(max_running_jobs + 1).count
       end
 
diff --git a/ee/app/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker.rb b/ee/app/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker.rb
index d24d2b1b520b5d860b2f59c19a34730545412009..b577c675ca0f88485ad6ac6a87b873c25bb6d755 100644
--- a/ee/app/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker.rb
+++ b/ee/app/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker.rb
@@ -13,7 +13,7 @@ class ScheduleBulkRefreshUserAssignmentsWorker
       idempotent!
 
       def perform
-        return unless Feature.enabled?(:hamilton_seat_management)
+        return unless Feature.enabled?(:bulk_add_on_assignment_refresh_worker)
 
         return unless ::Gitlab::CurrentSettings.should_check_namespace_plan?
 
diff --git a/ee/spec/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker_spec.rb b/ee/spec/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker_spec.rb
index 132fb5a6039c7392d9304a10847be8651877784a..d954e6ef1048e62de851f0188361047752c0c9ae 100644
--- a/ee/spec/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker_spec.rb
+++ b/ee/spec/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker_spec.rb
@@ -70,9 +70,9 @@
         it_behaves_like 'returns early'
       end
 
-      context 'when feature flag hamilton_seat_management is disabled' do
+      context 'when feature flag bulk_add_on_assignment_refresh_worker is disabled' do
         before do
-          stub_feature_flags(hamilton_seat_management: false)
+          stub_feature_flags(bulk_add_on_assignment_refresh_worker: false)
         end
 
         it_behaves_like 'returns early'
@@ -99,11 +99,23 @@
     end
 
     context 'when there is remaining work' do
-      it 'returns correct amount' do
+      before do
         stub_const("#{described_class}::MAX_RUNNING_JOBS", 1)
+      end
 
+      it 'returns correct amount' do
         expect(subject.remaining_work_count).to eq(2)
       end
+
+      context 'when the bulk_add_on_assignment_refresh_worker FF is disabled' do
+        before do
+          stub_feature_flags(bulk_add_on_assignment_refresh_worker: false)
+        end
+
+        it 'returns zero' do
+          expect(subject.remaining_work_count).to eq(0)
+        end
+      end
     end
 
     context 'when there is no remaining work' do
diff --git a/ee/spec/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker_spec.rb b/ee/spec/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker_spec.rb
index f6e8422701dd2096f88536df430dd6f2f4cdf0bb..717a867b3ae5f970f2d2d2b6843e619f5974b75d 100644
--- a/ee/spec/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker_spec.rb
+++ b/ee/spec/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker_spec.rb
@@ -34,7 +34,7 @@
 
     context 'when feature flag hamilton_seat_management is disabled' do
       before do
-        stub_feature_flags(hamilton_seat_management: false)
+        stub_feature_flags(bulk_add_on_assignment_refresh_worker: false)
       end
 
       it 'does not schedule the worker' do