Version History

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]

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]

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]

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]

Read more »

mSupply v9.0 (2026-04-09)

New Features

Improvements

  • Option to select specific fields to export in dashboard [17666]
  • Tamanu prescription integration updates [17880]
  • Stock window: export to excel all the stock columns [18028]
  • Able to process multiple repeats in one prescription [17735]
  • Patient merge button while doing prescription [17762]
  • Use machine id to identify clients for default printer prefs [17660]
  • Web authorisation: add button in requisition to recheck authorisation status [17325]
  • Tender: preferred column in the evaluation report to show if it is preferred or not [18058]
  • Support DB: Send the deleted site details to the Support DB app [17915]
  • Add confirmation alert when the user clicks on the duplicate lines button in a transact [17772]
  • Separate json logging for rest errors [17565]
  • Add a purchase order reference column on the outstanding purchase order line excel report. [17776]
  • Alphabetically sort master lists when applying master list filter [17769]

Nigeria

  • NHLMIS integration updates [17960] [17894] [17887]
  • One Network integration (COMS): changes to make it usable for non-Akesis stores [17506]
  • One Network integration (COMS) updates [17711] [17665] [17658] [17648] [17636] [17621] [17618] [17615] [17603]

Niger

  • Niger DHIS2 Integration [17763]

Afghanistan

  • Custom report for dispatch printing template [17744]

Côte d’Ivoire

  • Internal requisition report to include indicator code [17824]
  • eSIGL integration: only push requisition order for the specific supplying stores [17823]

Bug fixes

  • Print issue: Windows 11 microsoft print to pdf print error code 995 [17956]
  • Delete relevant sync out records when all of the stores are removed from a sync site [17838]
  • Improve alert when ‘Removing item from masterlist’ [17765]
  • Calculated purchase order should not be able to choose mSupply store as a supplier [17736]
  • Runtime error while opening the merged location [17686]
  • Restrict to put an invalid number for pack size during stock split [17657]
  • Name merge handle soft deletions [17192]
  • Web authorisation: able to work on a single user with sync turned off. #15347 [15347]
  • When running 2 progress bars, the total and counter numbers of both progress bars are getting mixed up. [11973]
  • Runtime error when printing replenishment report [18053]
  • The store masterlist visibility does not work in the store window [18005]
  • Issue With Replenishment Move List – Export To Excel [17996]
  • The stock transfer does not work when the receiving store is not visible [17993]
  • When making a store visible to another, the name of that store doesn’t sync to the site [17992]
  • Ledger issue: when you delete the lines from the customer invoice and the stock window is opened in another client [17975]
  • Syncing the newly created name using mirror sync doesn’t work. [17959]
  • Prescription window freezes when you try to view the item details window [17886]
  • Handle record locking when doing stock transfer [17861]
  • Runtime error while opening a merged location [17686]
  • Item reconcile code creates the stock line for the placeholder lines in a supplier invoice [17987]
  • Tender imports should handle the number as text [17986]
  • In the prescription window, add space in the UI for date of birth [17921]
  • ‘Tender lines with supplier response’ Spreadsheet Missing Lines [17906]
  • Import tender not working if manufacturer is missing [17893]
  • Haiti: Phased stocktake gets finalised even if the record has been locked [17875]
  • In prescription, the program list does not respond when you re-select a prescriber [17828]
  • Window freezes when you click on `OK & Previous` button on the very first record in the `Edit Tender Item` window [18074]

Internal or open mSupply related

  • New fields are added
  • Preemptive web/sync processes [17536] [17801] [17800] [17788] [17787] [17786] [17878]
  • Make background migration processes preemptive [17965]
  • Ability to keep records appearing recent for training and demo datafile17662
  • Upgrading to 4D v20.8 LTS [17728]
  • Removed 4D tokenisation [17869]
  • Dashboard OAuth: send additional information for a newer Grafana version [17825]

Read more »

mSupply v8.08 (2026-02-02)

New Features

  • Tamanu prescription integration [17279]

Improvements

  • Filter out inactive users in the Special > Store > User tab. [17641]
  • Optimized the aggregator calculation for AMC dataElement [17296]
  • Add mSupply server version to the customer web interface screen [17583]
  • Site log when the site app and version changed [17672]
  • Add the number of packs column in the item stock details and stock list form [17655]
  • Add a preference to enter the supplier category in the supplier invoice as mandatory. [17511]

Nigeria

  • Nigeria: Akesis manufactured date recording customisation [17486]
  • Nigeria: Akesis pallet packing customisation [17485]

Haiti

  • Haiti: Restrict Phased stocktake to be finalised if the stocks are record locked [17579]

Angola

  • Angola Guia de remessa report changes [17631]

Bug fixes

  • Another way to get the machine UUID is invalid [17441]
  • Fix stock that has been entered in `sg` mode on item builds [17652]
  • Runtime error when you try to delete the ingredients in build [17638]
  • Consolidate stock: added validation to avoid creating a negative ledger balance [17627]
  • Transact without the name ID can be created [17626]
  • Repack: added validation to avoid creating a negative ledger balance [17623]
  • eSigl schedulers running in interpreted mode [17608]
  • Restrict deletion of the manufacturer name that is related to the health supply hub [17432]
  • Set mobile remote site supplier invoice line extension price [17340]
  • Ledger Problem when a stockline record is locked when consolidating stock [17547]
  • Blank log during `item_line_locked` in the same site across different stores [17721]
  • Stock list `Export to excel` report does not match the stock columns [17681]
  • Runtime error when you try to print `Print box content list` [17576]
  • Error while creating new cash receipt [17575]
  • Disable price in purchase order once confirmed [17542]

Internal or open mSupply related

  • New fields are added
  • Open mSupply fields for goods receiving [17582]
  • Prevent historic transfers that should be blocked from being created on open mSupply [17507]
  • Allow user endpoint authentication even if the default store is not set [17677]
  • Change site sync default interval from 1 to 5 minutes [17534]
  • Can generate ledger issue report with diagnosis [16866]
  • Automatically disabled email to support whenthe database is unregistered [17592]

Read more »