Version History

mSupply v9.03 (2026-07-30)

Improvements

  • Dispensary: Preference to “Show `Hold` checkbox on prescriptions” [18532]
  • Inactive user auto-logout will now work on single-user sites [18365]
  • Tender quotes log tab [18199]
  • Optimise item import process [18360]
  • Custom data (list type): add a way to clear a field value once set [18480]

Nauru

  • Nauru: Prescribed but not dispensed report (Unfulfilled prescription report) [18513]

UK-Med

  • Add ons on commercial invoice and freight info reports [18468]

South Sudan UNFPA

  • South Sudan UNFPA – Waybill report with UNFPA logo only [18384]

Nigeria

  • Integration: COMS inventory file creation to handle illegal filename characters (e.g. “/”) [18555]

Bug Fixes

  • The cross-tab transaction report shows the suppliers instead of customers in the report [18501]
  • Duplicate transaction category codes and descriptions accepted without validation alert [18496]
  • Customer shortfall report does not provide the right data [18492]
  • Duplicate process is not clearing some linked PO and GR record ID [18407]
  • Prescription loading is slow for the first time when the ward is assigned [18375]
  • Store Preferences `Expiring items period` and `Stocktake frequency` should not accept decimals [18316]
  • Health supply hub supplier download does not populate address and contact fields in mSupply [18271]
  • Fixed “Item usage report w/ pending PO” where it creates an empty line and an empty next page. [18211]
  • Health supply hub `Test Connection ` shows test successful even if you entered the wrong credentials [18173]
  • Avoid the use of the merged name in transactions after the names are merged [17926]
  • Internal orders are not syncing when the default supplier is not visible to the customer [17890]
  • Avoid editing the repacks transactions of stores of another site [17761]
  • Repack cannot be created for the first time [17645]
  • Avoid user timeout when adding/editing locations, items, masterlists and running reports [18481]
  • Name store visibility tab incorrectly marks an extra store as visible [18471]
  • Overdue stocktake value does not update in notification after finalising the stocktake [18448]
  • ‘Execute On Server’ emails have no attachments [18371]
  • Field in use alert if custom data is used by the same table name in preferences > custom fields [18256]
  • There is no dashboard export scheduler even if the dashboard setting has been done in new datafile [18249]
  • The reporting for ledger issues takes a long time to report even for a single store [17970]
  • Runtime error when you try to delete the by the deleted supplier in tender [17862]
  • Avoid exporting a disabled site [17710]
  • “Can finalise/authorise replenishments” permissions not working [18506]
  • Sync v5 site initialisation times out and loops for large/multi-store sites [18405]

Internal / Open mSupply

  • Various field changes
  • Upgrade to 4D v20.8 HF3 [18560]
  • Make all scheduler processes preemptive [17972]
  • cURL plugin to use openSSL 4.0 [18356]

Read more »

mSupply v9.02 (2026-07-03)

Internal improvements

  • Sync V7: latest sync protocol between Open mSupply and legacy mSupply [18051]
  • Store data migration from mSupply to Open mSupply [18051]
  • Schedule a time for migration [18423]
  • Allow pause/resume migration [18466]
  • Able to prioritise store for migration [18321]
  • Site form: show how many store records a store/site has [18050]
  • Site form: optimistic locking [18416]
  • Field changes

Read more »

mSupply v9.01 (2026-05-29)

Improvements

  • User permissions preset template [18132]
  • Option to select specific fields when exporting dashboards [18073]
  • Site form now shows the number of store records associated with a store/site [18050]
  • Allowed zero quantity on prescription lines when the “Edit Prescribed Quantity” preference is enabled [18127]
  • Option to enable or disable the aggregator scheduler per data element [18266]
  • Optimised aggregators: Total Consumption, Stock Movement, Stock History, and Monthly DOS [18268] [18298]
  • Asset module: Added custodian phone number and email labels from the customisable list [18157]
  • Custom fields for supplier invoice line [18118]
  • Master list log when “Automatically add new items to this master list” is enabled [18134]
  • Log when a user generates a “User Activity Report” [18131]
  • Added a “Unit” of Measurement column to standard stock reports [18046]
  • Added ‘moved on’ column to the replenishment report [18156]
  • Option to run aggregator procedure in Postgres directly [18429]
  • Tamanu medication request improvements [18373]
  • Allow Mac mSupply client to connect to the server [18363]
  • Tamanu HL7 FHIR prescription integration, allow pulling and creating multiple items per prescription [18278]
  • Option to run aggregator procedure in postgres directly [18429]

South Sudan

  • Custom fields to stock and purchase order references linked to supplier invoice custom fields [18118]
  • Stock custom report [18118]

Haiti

  • Purchase order consignment receipt report: Added a QR code containing the purchase order number [18274]

UK-Med

  • New customer invoice printout (Commercial invoice) [18138]
  • New customer invoice printout (Freight info) [18137]

Myanmar

  • Add Myanmar font to the issued and receipt voucher report [18135]

Kiribati

  • Proposed changes to purchase order template (print) [18450]

Niger

  • DHIS2 integration updates [18326]

Bug Fixes

  • Fixed misleading zero Sync Site ID log messages when creating a new patient [18183]
  • Updated export/import tender line column names [18155]
  • Fixed customer requisitions from the EPI wastage form retaining a serial number of -1 after site export [18151]
  • Disabled the PostgreSQL export queue when the dashboard is not configured [18027]
  • Fixed item notes being displayed when they should not be visible [17905]
  • Fixed remote searched patient home store not being set when first made visible [17427]
  • Fixed stock supplier information being updated during inventory adjustment creation [18287]
  • Fixed the “On Hold” checkbox becoming unchecked when reopening a replenishment [18176]
  • Prevented creation of units containing only blank spaces [18174]
  • Fixed a ledger issue caused by placeholder lines being issued from mobile sites [18114]
  • Fixed supplier response imports where #VALUE! was incorrectly converted to 0 [18031]
  • Fixed an HL7 patient merge error [18304]
  • Fixed repeat prescriptions failing when the pack size is greater than 1 [18300]
  • Fixed a coms integration error caused by shipment files containing an invalid expiry date (0-00-00) [18283]
  • Fixed a login issue affecting users with no default store and access to multiple stores [18188]
  • Fixed a web server runtime error when selecting a patient or prescriber [18162]
  • Fixed a runtime issue when saving preferences after testing a tender connection [18160]
  • Fixed disposal dates not appearing in asset reports [18123]
  • Added fixes for Tamanu prescription integration [18100]
  • Fixed an invalid currency ID issue [18090]
  • Fixed manufacturer details not being visible on finalized purchase orders [18087]
  • Label printing not happening if placeholder lines are present [18403]
  • Update label `Use before date` for repeats expiry [18399]
  • Repeat prescription processing blocked when insufficient stock despite placeholder lines being enabled [18386]
  • Merging Supplier name does not merge the Health Supply Hub link [18348]
  • Runtime error when opening the stock on date [18331]
  • Dashboard holding too many postgres connections [18323]
  • Tender line columns should hold the last rearranged order [18297]

Internal / Open mSupply

  • Various field changes
  • Improved log deletion performance [18133]
  • Removed duplicate sync record checks during record creation [17895]
  • Changed PostgreSQL export to append only mode to improve sync performance [17667]
  • Added an Execute on Server preference for sending emails [18115]
  • Prevented SMTP override settings from being cleared when no password is supplied [17973]
  • Removed unused 4D modules from the application build [18258]
  • Fixed an issue where the startup background migrations process could lock tables when running concurrently [18093]
  • Removed logging for “site failed to update sync date” events [18089]
  • Replenishment table is not syncing to and add oms_fields to table [18349]
  • Add ShipmentVariance reason [18303]
  • Routes both username and email in Grafana [18295]

Read more »