---
id: change/bcapps/10235
type: change
title: "#10235 [Bug][SubscriptionBilling] Enforce Subscription Line Start Date change rules on all edit paths"
summary: Subscription Line start date changes are now blocked when billing has occurred, preventing periods from being invoiced multiple times or skipped. The validation runs on all edit paths instead of just two subpages.
tier: official
language: en
tags:
  - fix
  - main
  - bc30
  - table billing line
  - table billing line archive
  - table subscription line
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:07:03.881Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 6baee5c898ef00cee09ab6c21c1360a166f7ec60
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/pull/10235
    title: "microsoft/BCApps#10235: [Bug][SubscriptionBilling] Enforce Subscription Line Start Date change rules on all edit paths"
    date: "2026-08-29"
    commit: 6baee5c898ef00cee09ab6c21c1360a166f7ec60
    t: null
    quote: The Subscription Line start date could still be changed after the line had been billed.
links:
  learn: []
  objects:
    - object/table/8061
    - object/table/8064
    - object/table/8059
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 10235
repo: microsoft/BCApps
source_id: bcapps-prs
url: https://github.com/microsoft/BCApps/pull/10235
kind: pr
base_branch: main
major: "30"
merged_at: "2026-08-29T15:19:16Z"
author: miljance
author_type: User
community_contribution: true
labels:
  - "ADO: Sync"
  - "AL: Apps (W1)"
  - From Fork
  - "Ownership: Needs Review"
  - "Team: Other"
change_class: code
change_kind: fix
behavior_change: true
breaking: false
files:
  count: 4
  additions: 246
  deletions: 8
  al: 3
apps:
  - Subscription Billing
objects_touched:
  - key: table/8061
    page: table/8061
    type: table
    id: 8061
    name: Billing Line
    app: Subscription Billing
    status: modified
  - key: table/8064
    page: table/8064
    type: table
    id: 8064
    name: Billing Line Archive
    app: Subscription Billing
    status: modified
  - key: table/8059
    page: table/8059
    type: table
    id: 8059
    name: Subscription Line
    app: Subscription Billing
    status: modified
objects_unjoined: []
obsoletions: []
backports: []
fixes_issues:
  - 9976
work_items:
  - 648228
systems:
  - development
quote: The Subscription Line start date could still be changed after the line had been billed.
joined_against:
  major: "30"
  commit: ecbc028c25dbe83b61313bc566e6c1d41184bb1c
---

# #10235 [Bug][SubscriptionBilling] Enforce Subscription Line Start Date change rules on all edit paths

> Subscription Line start date changes are now blocked when billing has occurred, preventing periods from being invoiced multiple times or skipped. The validation runs on all edit paths instead of just two subpages.

[Pull request](https://github.com/microsoft/BCApps/pull/10235) · merged into `main` (BC30) on 2026-08-29 by miljance (community contribution) · 4 files (+246 -8), 3 AL · fix · tier official · reviewed (checked by Opus)

## What changed

- Moved start date validation from UpdateServiceCommitment to OnValidate trigger to cover all edit paths (pages, code, import, API)
- Fixed validation logic to detect whether billing actually occurred rather than just summing archived amounts
- Added exemption for temporary records used during subscription renewal
- Added missing secondary key on Billing Line Archive for efficient filtering
- Provides extensibility hook via OnAfterCheckSubscriptionLineStartDateChangeAllowed event
- Behaviour changes for users or extensions.

## AL objects touched

- [Table 8061 "Billing Line"](../../objects/table/8061.md), Subscription Billing: modified
- [Table 8064 "Billing Line Archive"](../../objects/table/8064.md), Subscription Billing: modified
- [Table 8059 "Subscription Line"](../../objects/table/8059.md), Subscription Billing: modified

## Context

- Fixes: [#9976 [Bug][SubscriptionBilling] Enforce Subscription Line Start Date change rules on all edit paths](https://github.com/microsoft/BCApps/issues/9976) (closed)
- Work items: AB#648228
- Labels: ADO: Sync, AL: Apps (W1), From Fork, Ownership: Needs Review, Team: Other
- Systems: development
- From the description: "The Subscription Line start date could still be changed after the line had been billed."

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).
