29 Oct 2025
Koha is the first free and open source software library automation package (ILS). Development is sponsored by libraries of varying types and sizes, volunteers, and support companies from around the world. The website for the Koha project is:
Koha 25.05.05 can be downloaded from:
Installation instructions can be found at:
Koha 25.05.05 is a bugfix/maintenance release.
It includes 61 bugfixes. 2 of them are security fixes.
System requirements
You can learn about the system components (like OS and database) needed for running Koha on the community wiki.
40587 Prevent selection of different EAN's on EDI ORDER when the Basket is generated from a QUOTE message
Sponsored by OpenFifth
This patch alters the way that the real time holds queue is rebuilt when an item is returned and a hold is found.
Previously the queue would be rebuilt on the initial checkin, and a second time when the hold was confirmed. This led to a race condition where the item would be queued in one run, while being marked in transit during the second.
We now delay the build of the holds queue until after the hold is either confirmed or ignored and only build it once.
This bugfix adds a check to the hold reminders cronjob so the job will skip if today is a holiday when the --holiday flag is used.
This will prevent the notice from repeating reminders that would send on a usually closed day again on the next open day.
Staff members now receive clear feedback when attempting to send ILL notices to patrons who have no email address on file or haven't configured their messaging preferences for interlibrary loan notifications.
Previously, when clicking "Send notice to patron" for an ILL request, staff received no indication whether the notice was successfully queued for delivery. If the patron had no email address or hadn't opted in to ILL messaging preferences, the notice would silently fail to send, leaving staff unaware that the patron wasn't notified.
With this enhancement: - A warning message now displays if the notice cannot be queued: "The requested notice was NOT queued for delivery by email, SMS" - A success message displays when the notice is successfully queued - Staff can immediately see when they need to contact the patron through alternative means (such as telephone)
For staff: If you see the warning message, check the patron's record to ensure: 1. They have a valid email address on file 2. They have enabled ILL messaging preferences (Interlibrary loan ready / Interlibrary loan unavailable) in their patron messaging preferences
This fixes a problem where lists were un-sortable in the staff interface. It also fixes a problem where the sort value for a list was always being set to 'Publication year' when editing that list.
This fixes the display logic for the Library of Congress classification field (050) in the staff interface for MARC21. The separator was being shown between subfields $a and $b, instead of between additional 050 entries.
Example:
For an 050 with two entries:
050 4 $aE337.5 $b.O54 2025 050 4 $aE415.7 $b.A44 2025
This was incorrectly shown in the staff interface as:
LOC classification: E337.5 | .O54 2025 E415.7 | .A44 2025
It should have been shown as:
LOC classification: E337.5 O54 2025 | E415.7 A44 2025
This fixes a problem where circulation messages were not order chronologically in the staff interface.
System Administrator Note:
Applying this update will add a new index to the borrowers table. On systems with a large number of patrons, this operation can take a significant amount of time and consume considerable server resources (CPU and I/O).
While modern database systems can often perform this operation without locking the table for the entire duration, a general slowdown of the system is expected. It is strongly recommended to run the upgrade (updatedatabase.pl) during a planned maintenance window to avoid impacting users.
This fixes an issue with the Advanced Search form. When using "More options" to enter multiple search criteria, each criteria after the first should have a drop-down allowing you to choose between "and", "or", and "not" for that line. That drop-down was missing for most lines, and this fixes that issue so that the drop-down will display correctly again.
This fixes the holdings table in the staff interface so that it can be searched and filtered by the shelving location description.
This fixes a problem with the transport cost matrix where fields that were disabled could not be made enabled via the interface,
25.11.00
MARC modification templates now correctly preserve existing values when moving subfields within repeatable fields. Previously, moving subfields could cause data loss or duplication when the source subfield didn't exist in all instances of the repeatable field.
The problem:
When using a MARC modification template to move a subfield within a repeatable field (for example, moving 020$z to 020$a), if some 020 fields had existing $a values but no $z values, those existing $a values would be overwritten or lost.
Example scenario:
Given multiple 020 fields: - 020$a with existing ISBN - 020$a with another existing ISBN
- 020$z with cancelled ISBN (to be moved to $a) - 020$z with another cancelled ISBN (to be moved to $a)Previously, when moving 020$z to 020$a, the first two existing 020$a values would be replaced with values from the 020$z fields, causing data loss.
What's fixed:
- Existing subfield values in fields that don't contain the source subfield are now preserved
- Source subfield values are only moved to the corresponding target positions in fields that actually contain the source subfield
- The move operation correctly removes the source subfields after copying their values
- Field order and other subfields are maintained correctly
For cataloguers:
MARC modification template "move" operations now work reliably with repeatable fields. When moving subfields, only the fields that contain the source subfield will be affected, and all other existing values in the repeatable fields will be preserved.
ILS-DI GetRecords will now show the OPAC version of "marcxml".
The Koha manual is maintained in Sphinx. The home page for Koha documentation is
Koha Documentation As of the date of these release notes, the Koha manual is available in the following languages:
The Git repository for the Koha manual can be found at
Complete or near-complete translations of the OPAC and staff interface are available in this release for the following languages:
Partial translations are available for various other languages.
The Koha team welcomes additional translations; please see
For information about translating Koha, and join the koha-translate list to volunteer:
The most up-to-date translations can be found at:
The release team for Koha 25.05.05 is
Release Manager: Lucas Gass
QA Manager: Martin Renvoize
QA Team:
Documentation Manager: David Nind
Documentation Team:
Translation Manager: Jonathan Druart
Wiki curators:
Release Maintainers:
Release Maintainer assistants:
We thank the following libraries, companies, and other institutions who are known to have sponsored new features in Koha 25.05.05
We thank the following individuals who contributed patches to Koha 25.05.05
We thank the following libraries, companies, and other institutions who contributed patches to Koha 25.05.05
We also especially thank the following individuals who tested patches for Koha
We regret any omissions. If a contributor has been inadvertently missed, please send a patch against these release notes to koha-devel@lists.koha-community.org.
The Koha project uses Git for version control. The current development version of Koha can be retrieved by checking out the main branch of:
The branch for this version of Koha and future bugfixes in this release line is 25.05.x.
Bug reports and feature requests can be filed at the Koha bug tracker at:
He rau ringa e oti ai. (Many hands finish the work)
Autogenerated release notes updated last on 29 Oct 2025 16:50:14.