ReleaseMicrosoftMicrosoftpublished May 11, 2026seen Jun 26

microsoft/fhir-server release/4.0.759

microsoft/fhir-server

Open original ↗

Captured source

source ↗
published May 11, 2026seen Jun 26captured 2dhttp 200method plain

4.0.759

Repository: microsoft/fhir-server

Tag: release/4.0.759

Published: 2026-05-11T01:10:28Z

Prerelease: no

Release notes:

What's Changed

Azure Health Data Services (SQL)

  • Fix NSP Association (S360 item) by @v-rachitsh in #5534
  • Fix startup memory pressure by @LTA-Thinking in #5550 — Resolves OOM-style memory spikes at startup on databases with very large numbers of systems or quantity codes by streaming/processing rows inside the reader and skipping nulls instead of materializing huge lists.
  • Disable query plan reuse based on stats by @LTA-Thinking in #5525 — Bad cached plans on skewed search parameters were causing wildly inconsistent query performance; a new background QueryPlanReuseChecker now detects skewed parameters from SQL stats and disables plan reuse for them, with the toggle moved to appsettings for easier control.
  • Restrict Import to Configured Storage Account by @mikaelweave in #5536 — Fixes a security gap where $import accepted URLs pointing at arbitrary storage accounts; input URLs are now validated against the configured storage account endpoint and failure responses are sanitized.
  • Add logs to detect meta-only update operations by @rbans96 in #5551 — Adds telemetry to identify update calls that result in no changes or only changes to meta fields (tag, security, profile, lastUpdated, versionId), making it easier to spot wasteful client write patterns.
  • Reduce memory pressure during export by releasing RawResource by @apurvabhaleMS in #5552 — Large export batches were holding decompressed RawResource payloads in memory until the entire batch finished, causing OOMs on memory-constrained App Services; RawResource is now nulled out after each write, the O(n²) drain loop is replaced with an O(n) loop, and _maxCount is capped at 10,000.

Common to both Azure API for FHIR and Azure Health Data Services

  • Update tests for search parameter initialization by @feordin in #5516 — Adds negative E2E and integration test coverage around search parameter initialization to lock in expected behavior and catch regressions earlier.
  • Add PATCH E2E test coverage aligned with PUT tests by @rbans96 in #5554 — Expands E2E coverage so PATCH (JSON Patch and FHIRPath Patch) is validated against the same scenarios as PUT, including single-field updates that confirm other fields and resource identity remain unchanged.
  • Add OOM protection for Export operations by @apurvabhaleMS in #5511 — Improved retry handling for $export Out of Memory exceptions— Export jobs previously failed immediately on OutOfMemoryException; the job now retries with reduced batch size. When retries are exhausted, the job fails with the same 413 RequestEntityTooLarge status and ExportOutOfMemoryException message as before.
  • [Metrics] Adding support to Success rate metrics by @fhibf in #5555 — Adds success/failure rate metric emission across bundles, import, jobs, and the search parameter cache refresh background service so operators can monitor reliability of these operations.

Other Changes

  • Prepare for concurrency based on max last updated by @SergeyGaluzo in #5527 — Lays groundwork for future max(LastUpdated)-based concurrency by deduplicating MergeSearchParams/MergeResourcesAndSearchParams, guarding against racing reindex updates inside the SQL transaction, fixing GetActiveJobs access, and adding an efficient active-job existence check.
  • Fix test files for missing interface member by @feordin in #5548 — Updates test files to implement a newly-added interface member that was breaking the build.

Full Changelog: https://github.com/microsoft/fhir-server/compare/release/4.0.747...release/4.0.759