---
id: change/bcapps/12261
type: change
title: "#12261 Stop repeated rescheduling of Dataverse synch jobs on bulk changes"
summary: The Dataverse synchronization job reschedule logic now checks both the scheduled task's next run time and the job queue entry's earliest start date to avoid repeated rescheduling during bulk changes, reducing unnecessary Service Bus costs.
tier: official
language: en
tags:
  - fix
  - main
  - bc30
  - codeunit crm integration management
system: integration
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:01:54.887Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: f5257a6fe8ee53b55695737661eaa6fa2d3f5347
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/pull/12261
    title: "microsoft/BCApps#12261: Stop repeated rescheduling of Dataverse synch jobs on bulk changes"
    date: "2026-10-06"
    commit: f5257a6fe8ee53b55695737661eaa6fa2d3f5347
    t: null
    quote: If the job is already due within the reschedule window, skip it.
links:
  learn: []
  objects:
    - object/codeunit/5330
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 12261
repo: microsoft/BCApps
source_id: bcapps-prs
url: https://github.com/microsoft/BCApps/pull/12261
kind: pr
base_branch: main
major: "30"
merged_at: "2026-10-06T14:50:56Z"
author: darjoo
author_type: User
community_contribution: false
labels:
  - "Team: Integrations"
change_class: code
change_kind: fix
behavior_change: true
breaking: false
files:
  count: 2
  additions: 117
  deletions: 17
  al: 1
apps:
  - Base Application
objects_touched:
  - key: codeunit/5330
    page: codeunit/5330
    type: codeunit
    id: 5330
    name: CRM Integration Management
    app: Base Application
    status: modified
objects_unjoined: []
obsoletions: []
backports: []
fixes_issues: []
work_items:
  - 576352
systems:
  - integration
quote: If the job is already due within the reschedule window, skip it.
joined_against:
  major: "30"
  commit: ecbc028c25dbe83b61313bc566e6c1d41184bb1c
---

# #12261 Stop repeated rescheduling of Dataverse synch jobs on bulk changes

> The Dataverse synchronization job reschedule logic now checks both the scheduled task's next run time and the job queue entry's earliest start date to avoid repeated rescheduling during bulk changes, reducing unnecessary Service Bus costs.

[Pull request](https://github.com/microsoft/BCApps/pull/12261) · merged into `main` (BC30) on 2026-10-06 by darjoo · 2 files (+117 -17), 1 AL · fix · tier official · reviewed (checked by Opus)

## What changed

- Reschedule now also checks the job queue entry's Earliest Start Date/Time and skips jobs already due within the reschedule window
- Job queue entry is locked before SetTaskReady, and status, task ID and earliest start are re-checked under the lock so concurrent sessions do not each reschedule
- Reschedule loop moved into new internal procedure RescheduleJobQueueEntriesForTable so tests can call it
- Targets telemetry showing one reschedule per changed record, which drove Service Bus cost
- New tests cover moving a later job to about 30 seconds and not rescheduling again when the task's Not Before is stale
- Behaviour changes for users or extensions.

## AL objects touched

- [Codeunit 5330 "CRM Integration Management"](../../objects/codeunit/5330.md), Base Application: modified

## Context

- Work items: AB#576352
- Labels: Team: Integrations
- Systems: integration
- From the description: "If the job is already due within the reschedule window, skip it."

Source: metadata of a merged pull request in microsoft/BCApps (bcapps): title, labels, changed paths and counts, with a summary in our words. No source text and no description beyond one short quote (D10, D61).
