---
id: change/bcapps/12255
type: change
title: "#12255 Fix overwrite import of exported system permission sets"
summary: System permission set imports with overwrite option now correctly delete permissions and relations that differ from the imported file, instead of merging silently. The fix handles both system and tenant format files, with tenant format now using exact role ID matching.
tier: official
language: en
tags:
  - fix
  - main
  - bc30
  - xmlport import permission sets
system: administration
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:02:29.034Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 63ae02a0d5088110d7b6ea8599cf45b8ac1555c8
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/pull/12255
    title: "microsoft/BCApps#12255: Fix overwrite import of exported system permission sets"
    date: "2026-10-05"
    commit: 63ae02a0d5088110d7b6ea8599cf45b8ac1555c8
    t: null
    quote: null
links:
  learn: []
  objects:
    - object/xmlport/9864
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 12255
repo: microsoft/BCApps
source_id: bcapps-prs
url: https://github.com/microsoft/BCApps/pull/12255
kind: pr
base_branch: main
major: "30"
merged_at: "2026-10-05T14:18:31Z"
author: darjoo
author_type: User
community_contribution: false
labels:
  - "AL: System Application"
  - "Team: Integrations"
change_class: code
change_kind: fix
behavior_change: true
breaking: false
files:
  count: 2
  additions: 78
  deletions: 6
  al: 1
apps:
  - System Application
objects_touched:
  - key: xmlport/9864
    page: xmlport/9864
    type: xmlport
    id: 9864
    name: Import Permission Sets
    app: System Application
    status: modified
objects_unjoined: []
obsoletions: []
backports:
  - number: 12371
    base: releases/29.x
    url: https://github.com/microsoft/BCApps/pull/12371
fixes_issues: []
work_items:
  - 631431
  - 639487
systems:
  - administration
quote: null
joined_against:
  major: "30"
  commit: ecbc028c25dbe83b61313bc566e6c1d41184bb1c
---

# #12255 Fix overwrite import of exported system permission sets

> System permission set imports with overwrite option now correctly delete permissions and relations that differ from the imported file, instead of merging silently. The fix handles both system and tenant format files, with tenant format now using exact role ID matching.

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

## What changed

- System-format overwrite import now deletes existing tenant permissions and relations filtered on the empty App ID
- Tenant-format overwrite uses SetRange, so role IDs containing filter characters cannot match the wrong records
- After an overwrite import the set matches the file, instead of silently merging
- The Yes (update) option is unchanged and still only adds or raises permissions
- New test covers removed and lowered permissions and relation changes on an overwrite import
- Behaviour changes for users or extensions.

## AL objects touched

- [XMLport 9864 "Import Permission Sets"](../../objects/xmlport/9864.md), System Application: modified

## Also merged into

- [#12371](https://github.com/microsoft/BCApps/pull/12371) into `releases/29.x` on 2026-10-06

## Context

- Work items: AB#631431, AB#639487
- Labels: AL: System Application, Team: Integrations
- Systems: administration

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