---
id: post/demiliani-com/15914
type: post
title: "Dynamics 365 Business Central: locking down IsolatedStorage reads."
summary: Starting with runtime version 18.0, the IsolatedStorage.Get method accepts an optional IsolationLevel parameter to prevent race conditions during concurrent read-modify-write operations. The new UpdLock isolation level holds an update lock on a key's row during reads, blocking other sessions until the transaction completes, protecting sensitive data like secret keys, feature flags, and cached tokens from concurrent corruption.
tier: community
language: en
tags:
  - isolatedstorage
  - concurrency
  - locking
  - al development
  - race conditions
  - data protection
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-07T23:46:26.709Z"
  flags: []
generated:
  at: "2026-10-07T22:42:12.892Z"
  pipeline: 0.2.0
  prompts:
    extract-post: 1
  input_hash: d479d13e3ae409b4fa08b16c8c22ef07ba3fda4cfff65116fa514a835501a4ed
evidence:
  - kind: blog
    url: https://demiliani.com/2026/09/14/dynamics-365-business-central-locking-down-isolatedstorage-reads/
    title: "Dynamics 365 Business Central: locking down IsolatedStorage reads."
    date: "2026-09-14"
    commit: null
    t: null
    quote: null
  - kind: blog
    url: https://demiliani.com/2026/09/14/dynamics-365-business-central-locking-down-isolatedstorage-reads/
    title: "Dynamics 365 Business Central: locking down IsolatedStorage reads."
    date: "2026-09-14"
    commit: null
    t: null
    quote: two sessions read the same key at the same time, both compute a new value, and one of them silently overwrites the other.
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
post_id: "15914"
source_id: demiliani-com
source_name: Stefano Demiliani
url: https://demiliani.com/2026/09/14/dynamics-365-business-central-locking-down-isolatedstorage-reads/
published_at: "2026-09-14T07:34:58.000Z"
author: Stefano Demiliani
full_text: false
words: 409
quotes:
  - text: two sessions read the same key at the same time, both compute a new value, and one of them silently overwrites the other.
    why_it_matters: Describes the core race condition problem that the new feature solves
code_objects_mentioned:
  - other IsolatedStorage
systems:
  - development
  - platform
versions_mentioned:
  - "18.0"
preview:
  embeddable: true
  frame_url: https://demiliani.com/2026/09/14/dynamics-365-business-central-locking-down-isolatedstorage-reads/embed/
  image: https://demiliani.com/wp-content/uploads/2025/11/bcnewlogo.png
  image_alt: null
  image_w: 415
  image_h: 413
  site_name: Stefano Demiliani
  favicon: https://demiliani.com/wp-content/uploads/2022/09/sd_wordpress_logo.png?w=32
  probed_at: "2026-10-07T11:50:07.768Z"
---

# Dynamics 365 Business Central: locking down IsolatedStorage reads.

[Read the post](https://demiliani.com/2026/09/14/dynamics-365-business-central-locking-down-isolatedstorage-reads/) · Stefano Demiliani (Stefano Demiliani, MVP) · 2026-09-14 · 409 words · tier community · reviewed (checked by Opus)

> Starting with runtime version 18.0, the IsolatedStorage.Get method accepts an optional IsolationLevel parameter to prevent race conditions during concurrent read-modify-write operations. The new UpdLock isolation level holds an update lock on a key's row during reads, blocking other sessions until the transaction completes, protecting sensitive data like secret keys, feature flags, and cached tokens from concurrent corruption.

## Key points

- IsolatedStorage.Get now accepts an optional IsolationLevel parameter to control how the key row is locked during reads
- IsolationLevel::UpdLock holds an update lock until the transaction ends, preventing other sessions from reading or writing the same key
- This protects read-modify-write patterns commonly used for secret keys, feature flags, and cached tokens
- Available in runtime version 18.0 and later; earlier versions require alternative locking strategies

## Quotes

- "two sessions read the same key at the same time, both compute a new value, and one of them silently overwrites the other." (Describes the core race condition problem that the new feature solves)

## AL objects mentioned

As named in the post. A name that matches one object page by exact type and name links to it; the others stay as named.

- other "IsolatedStorage"

## Context

- Features: IsolatedStorage locking, isolation levels, update locks, concurrent access control, read-modify-write transactions
- Versions: 18.0

Source: Stefano Demiliani, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.
