Koha Upgrades

19.11 Upgrade Notes

Koha 19.11

The Koha Community has released Koha 19.11.00. 19.11 is a major release, that comes with many new features. It includes 7 security fixes, 20 new features, 146 enhancements, 367 bugfixes.

19.11 Resources

Koha 19.11 Release Notes

Koha Community 19.11 Manual

Koha Community 19.11 Schema

Tutorial Videos and Blog Posts

Patron Clubs Hold Feature

Claims Returned Enhancement

Monday Minutes: Advanced Editor Enhancements for 19.11

Koha Introduces a Cash Register Feature

Ability to Add Multiple Guarantors

New Feature with the Account Credit Slip

The Accountlines Table in 19.11

See and Pay Your Guarantee's Fines on the OPAC

Monday Minutes: New Opt-Out Option for Auto Renewals

Monday Minutes: Adding Social Networks in the Koha OPAC

Monday Minutes Displaying Itemtypes in Circulation

New System Preference for Trapping Holds

Old Debits and New Credits in 19.11

Monday Minutes: Editing an Accountlines Report After Upgrade

Keyword to MARC mapping / Koha to MARC Mapping

Module Specific Blog Posts

The Education Team has taken the 19.11 Release Notes and expanded on the new features and enhancements by module! Here are the links to those specific blog posts!

19.11 Technical Services Updates

19.11 Admin and Reports Updates

19.11 OPAC and Public Services Updates

19.11 Patrons and Circulation Updates

What's New Webinar

Here is a link to the recorded What's New webinar from 5/19:

Here is a link to the second recorded What's New Webinar from 5/21:

Q&A Page

We have gathered all the questions that were asked during our two "What's New" webinars and the two Q&A sessions - check out what other partners are asking!

Q&A Sessions

Here is a link to our first Q&A session to discuss 19.11:

Here's a link to our second Q&A session:

Here is a breakdown of the 19.11 Release Notes from the Koha Community

Security Bugs


  • [22543] Patron might be logged in again using browser back button
  • [23025] security vulnerability detected in fstream < 1.0.12 defined in yarn.lock
  • [23042] Local login attempt populates shibboleth url with userid and password in plain text
  • [23058] Cross-site scripting in OPAC search
  • [23329] tracklinks.pl accepts any url from a parameter for proxying if not tracking
  • [23451] Reflected XSS in opac-imageviewer.pl
  • [23836] tracklinks.pl should not forward if TrackClicks is disabled

New features


  • [17179] Advanced editor: Add keyboard shortcuts to repeat (duplicate) a field, and cut text. Sponsored by Round Rock Public Library
  • [22445] Ability to define a URL for custom cover images. Sponsored by Orex Digital

Fines and fees

  • [23228] Add option to automatically display payment receipt for printing after making a payment
    This enhancement adds the optional ability to automatically popup the receipt print dialogue upon successful payments.

Hold requests

  • [19618] Add ‘Club Holds’ feature. Sponsored by South East Kansas Library System


  • [22581] Add support for Plaine & Easie musical incipits rendering in OPAC
    Sponsored by Biblioteca Provincial Fr. Mamerto Esquiú (Provincia Franciscana de la Asunción)

  • [23214] Add ability to pay guarantees fines


  • [14570] Make it possible to add multiple guarantors to a record
    Sponsored by Northeast Kansas Library System and Vermont Organization of Koha Automated Libraries

Plugin architecture

  • [22706] Add plugin hooks to allow custom password strength checking modules

  • [22709] Add hooks to notify plugins of biblio and item changes

  • [22834] Add a method for plugins to return the absolute path for bundled files

  • [22835] Serve static files from plugins through the API. Sponsored by Theke Solutions

  • [23050] Add hook to add a tab in intranet biblio details page

  • [23237] Add support for [% INCLUDE %] in plugin templates


  • [16825] Add API route for getting an item. Sponsored by Koha-Suomi Oy
  • [17003] Add API route to get checkout’s renewability
  • [23517] Add API route to update a holds priority
  • [23584] Add public API routes to change privacy settings
  • [23677] Add API route to get a bibliographic record

Staff Client

  • [23321] Add ‘cash registers’ to the accounts system
    Sponsored by Cheshire Libraries Shared Services and PTFS Europe

Z39.50 / SRU / OpenSearch Servers

  • [13937] Add an Elasticsearch-compatible Z39.50/SRU daemon. Sponsored by National Library of Finland

New Enhancements


  • [14669] Search orders by managing library
  • [20254] Forbid the download of duplicate EDI messages
  • [20595] EDI: Add support for LRP (Library Rotation Plan) for Koha with Stock Rotation enabled.Sponsored by PTFS Europe
  • [23522] Show “Actual price” in basket when available. Sponsored by Virginia Tech

Architecture, internals, and plumbing

  • [18928] Move holdallowed, hold_fulfillment_policy and returnbranch into the circulation_rules table.
  • [18930] Move ‘refund lost item fee rules’ into the circulation_rules table
  • [22563] Convert lost handling to use ‘status’ instead of multiple accounttypes
  • [22610] SIP Payment Types should be moved out of accountype
  • [22721] Normalize GetMarcFromKohaField calls
  • [22837] Koha::Account::Line->apply should not require a ‘set’ of debits
  • [23068] Add ability for Koha to handle X-Forwarded-For headers so REMOTE_ADDR features work behind a proxy
  • [23152] koha_object[s]_class methods must be implemented when needed
  • [23230] Make Koha::Plugins::Base::versioncompare OO
  • [23272] Koha::AuthorisedValue should use Koha::Object::Limit::Library
  • [23281] Add Koha::Objects::Limit::Library
  • [23414] Improve performance of C4/XSLT/buildKohaItemsNamespace
  • [23580] Add C4::Context->yaml_preference
  • [23623] Use the new API and remove /svc scripts for privacy settings
  • [23770] Add Koha::Object(s)->to_api method. Sponsored by ByWater Solutions
  • [23793] Add an EmbedItems RecordProcessor filter for MARC::Record objects
  • [23807] Add Koha::Item->as_marc_field
  • [23843] Make existing endpoints use Koha::Object(s)->to_api


  • [23146] Add support for Basic auth on the OAuth2 token endpoint. Sponsored by ByWater Solutions


  • [15497] Limit item types by library
    Sponsored by Central Kansas Library System, Northeast Kansas Library System and South East Kansas Library System
  • [17178] Add a popup/keyboard shortcuts for diacritics and symbols in the advanced cataloging editor
    Sponsored by Round Rock Public Library
  • [23602] Library limitations should display in the item types table


  • [14697] Extend and enhance “Claims returned” lost status
    Sponsored by Fargo Public Library and North Central Regional Library System

  • [17492] Show warning if patron’s age is out of category limit
  • [20194] Display both biblioitems.itemtype and items.itype in circulation screens
  • [20959] Style checkin form more like the checkout form, with collapsed settings panel
  • [23328] Some check-in messages should be dismissable
  • [23507] Add ability to show and print change given on fee receipt from FinePaymentAutoPopup
  • [23686] Check onsite checkout when the last checkout was an onsite one

Command Line Utilities

  • [16219] Runreport.pl should allow SQL parameters to be passed on the command line
  • [17168] Add a command line script for updating patron category based on status
    Sponsored by Round Rock Public Library

  • [22509] Add a script to generate MARC fields containing date formatted strings
    Sponsored by Orex Digital
  • [23346] Add without-db-name parameter to koha-dump

Fines and Fees

  • [6759] Use a different account type for account renewals than for new accounts
  • [22627] Rephrase ‘your fines and charges’ tab in OPAC
    Sponsored by Catalyst
  • [23049] Replace MANUAL_INV authorised value with a dedicated table
  • [23805] Add a dedicated credit_types table

Hold Requests

  • [22922] Allow to modify hold and hold expiration date in staff


[15260] Option for extended loan with useDaysMode
Sponsored by Cheshire East Council, Cheshire West and Chester Council, Newcastle City Council and Sefton Council


  • [23631] fr-CA translation of NEW_SUGGESTION notice
  • [23983] Contextualization of “Order” (verb) vs “Order” (noun)

Label/patron card printing

  • [23464] Update the process of quick spine label printing

MARC Bibliographic data support

  • [18309] UNIMARC update from IFLA for new Koha installations
  • [20364] Show languages from MARC21 field 041 in intranet
  • [20434] UNIMARC update from IFLA for existing Koha installations
  • [22884] Remove ending . from XSLT templates
  • [23731] Display LC call number in OPAC and staff detail pages


  • [21180] Allow Talking Tech outbound script to limit based on patron home library branchcode
  • [23278] Reopen last panel upon “Save and continue” in notices


  • [5287] Add floating toolbar to search results in OPAC
  • [8778] Add Keyword phrase search to OPAC search
  • [20691] Add ability for guarantors to view guarantee’s fines in OPAC
  • [21701] Have PayPal optionally return to originating OPAC url rather than OPACBaseURL
  • [23096] Add floating toolbar to OPAC lists
  • [23299] Switch address1 and streetnumber for German address format on opac-memberentry
  • [23392] Support MARC21 indicators for private note fields
  • [23566] Continue on device – with QR codes
  • [23633] Filter out historical charges by default on a users ‘your charges’ page
  • [23694] Author “By” should have its own class
  • [23720] Add div wrapper to search results to make moving cover images easier
  • [23791] Allow granular control of social networks enabled by SocialNetworks syspref
  • [23903] Replace OPAC icons with Font Awesome
  • [23955] Replace famfamfam icon in OPAC holds template


  • [23400] Add –status to koha-indexer


  • [23219] Show a warning about canceling their holds before a patron is deleted
  • [23697] Add autocomplete for patron search in patron module

Plugin Architecture

  • [21073] Improve plugin performance
  • [23191] Administrators should be able to install plugins from the command line
  • [23213] Add hook to OPAC payments to allow plugins to set minimum payment threshold

Rest API

  • [17005] Extend /checkouts route to list circulation history
  • [23667] Add API route for listing items


  • [15422] Number of items to order on holds ratio report will not fulfill the holds ratio
  • [23206] Batch patron modification from reports which return cardnumber
  • [23389] Add ‘All’ option to report value dropdowns
  • [23390] Add placeholder syntax for column names


  • [20292] Filter/censor info sent via SIP
    Sponsored by Duchesne County Library and Uintah Library System

  • [20954] Add ability to set syspref overrides in SIP as we can in Apache
    Sponsored by South East Kansas Library System
  • [22540] Add ability to place holds using SIP CLI emulator


  • [23386] Add language of original in advanced search – staff client
  • [23543] Adding withdrawn to the item search

Searching - Elastic

  • [17851] Add Elasticsearch config to koha-conf.xml. Sponsored by Koha-Suomi Oy
  • [20334] Elasticsearch – Option for escaping slashes in search queries
  • [20589] Add field boosting and use elastic query fields parameter instead of deprecated _all
  • [20607] Elasticsearch – ability to add a relevancy weight in mappings.yaml file
  • [22592] Elasticsearch – Support for index scan
  • [22826] Allow indexing of individual authority records in Elasticsearch


  • [21588] Add “Collapse/Expand” options on subscription-detail page
  • [23435] Add multiple copies of an item when receiving in serials. Sponsored by Brimbank City Council

Staff Client

  • [18421] Make Coce cover images available for staff search
  • [21245] Move ‘Last patron’ button inside of the ‘breadcrumb’ bar
  • [23711] Icons on staff main page should be font icons
  • [23803] Add Font Awesome icon to cart in staff interface

System Administration

  • [11529] Add subtitle, medium and part fields to biblio table. Sponsored by National Library of Finland
  • [21574] Local use system preferences page doesn’t have the system preferences menu
  • [23179] Add ‘Edit subfields’ to framework management tag dropdown and clarify options
  • [23606] Add columns configuration and export options to item types administration
  • [23611] Add export option to authorized values administration
  • [23866] HEA submission preferences should prompt similar to ManaKB


  • [7074] Show subtitle, part and number of a record in list of checkins
  • [17057] Remove event attributes from holds template
  • [21058] Missing class for results_summary spans
  • [21824] Add ability to format dates in various formats in templates
  • [21852] Add more columns and column configuration to overdues report
  • [22209] Move stock rotation stage and item forms into modals
  • [22897] Switch two-column templates to Bootstrap grid: ILL requests
  • [22935] Improve style of Bootstrap pagination
  • [22999] Switch two-column templates to Bootstrap grid: Circulation
  • [23013] Upgrade DataTables in the staff client
  • [23094] Use Bootstrap-style pagination on staged MARC records page
  • [23159] Reindent addbiblio.tt
  • [23183] Reindent cataloging.js
  • [23196] Reindent tools/batch_record_modification.tt
  • [23197] Add more batch operation options to SQL report results
  • [23221] Reindent tools/manage-marc-import.tt
  • [23259] Remove reset-fonts-grids.css
  • [23286] Improve style of hold confirmation modal
  • [23304] Reindent cataloguing/z3950_search.tt
  • [23307] Add columns configuration to cataloguing/z3950_search.tt
  • [23339] Reindent addbooks.tt
  • [23351] Clean up localization template
  • [23399] Reindent returns.tt
  • [23438] Use Font Awesome icons in intranet search results browser
  • [23444] Terminology: Use library instead of branch
  • [23448] Clean up subscription detail template
  • [23458] Clean up holds template in the staff client
  • [23834] Add default ESLint configuration
  • [23958] Use Font Awesome icon to replace “new window” icon image
  • [24034] Capitalization on suggestion edit form: No Status
  • [24076] Remove inline CSS to center patron home library in search results

Test Suite

  • [23280] Warning in t/db_dependent/selenium/patrons_search.t
  • [23284] Duplicate test in t/db_dependent/Plugins.t
  • [23994] AdditionalFields.t is failing randomly (U18)


  • 13552] Add debar option to batch patron modification
  • [22272] Calendar: When entering date ranges grey out dates in the past from the start date
  • [22888] Use DataTables for Koha news table filtering
  • [22996] Move barcode separators to a preference
  • [23279] In news management interface, sort news by publication date descending
  • [23385] Hide default value fields by default on patron import
  • [23512] Reindent notices and slips page (letter.tt)

Web Services

  • [22677] Include hint on OAI-PMH URL for Koha in system preference
  • [23154] Add pagination to /api/v1/checkouts
  • [23156] Add pagination to checkouts in ILS-DI GetPatronInfo service

Critical Bugs

Critical bugs fixed

(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)


  • [18743] Filter suggestion lists correctly for IndependentBranches. Sponsored by BULAC
  • [21316] Adding controlfields to the ACQ framework causes issues when adding to basket
  • [23397] Order lines can be duplicated in acqui scripts spent.pl and ordered.pl
  • [23854] Cannot edit a suggestion
  • [23855] Cannot mark the selected suggestion as “pending”
  • [23863] Editing a basket clears create_items value
  • [23927] Duplicate a “Complete” order link the “New” one to the invoice

Architecture, internals, and plumbing

  • [22857] Entries missing in koha-conf.xml
  • [23095] Circulation rules not displayed (empty vs null)
  • [23316] GetFine needs updating for bug 22521
  • [23599] Koha::Objects::Limit::Library fails if no library passed
  • [23655] Errors when running on Debian Jessie
  • [23723] Using exit inside eval to stop sending output to the browser doesn’t work under Plack
  • [23867] fails with “Truncated incorrect DOUBLE value”


  • [22585] Fix remaining double-escaped CAS links
  • [23526] Shibboleth login url with query has double encoded ‘?’ %3F
  • [23771] CAS/Shib Authentication can fail when multiple users with no userid/cardnumber defined and one of them is locked


  • [23045] Advanced cataloging editor (rancor) throws a JS error on incomplete/blank lines
  • [23252] Pressing enter should not submit form in item editor
  • [23851] Auto generate accession number format yymm0001 fails to add branchcode prefix(branchcode) for multiple item addition


  • [13958] Add a suspensionsCalendar syspref
    Sponsored by Universidad Nacional de Córdoba

  • [20086] AddRenewal is not executed as a transaction and can results in partial success and doubled fines
  • [22877] Returning a lost item not marked as returned can generate additional overdue fines
  • [23018] Refunding a lost item fee may trigger error if any fee has been written off related to that item
  • [23079] Checkouts page broken because of problems with date calculation (TZAmerica/Sao_Paulo)
  • [23103] Cannot checkin items lost by deleted patrons with fines attached
  • [23120] Internal server error when checking in item to transfer and printing slip
  • [23145] Confirming transfer during checkin clears the table of previously checked-in items
  • [23293] OPACFineNoRenewals always compares against ‘balance’ not ‘outstanding’
  • [23382] Issuing rules failing after bug 20912
  • [23404] Circulation::TooMany error on itemtype when at biblio level
  • [23405] Circulation autocomplete for patron lookup broken if cardnumber is empty
  • [23518] Problem with borrower search autocomplete
  • [23551] Problem with renewal period when using the renewal tab
  • [23774] When placing a hold editing using Inspect Element allows addition to the code of non listed library
  • [23938] Title missing from Checked out box
  • [23985] The method Koha::Item-> is not covered by tests!
  • [24013] Transferring a checked out item gives a software error
  • [24075] Backdating a return to the exact due date and time results in the fine not being refunded

Command-line Utilities

  • [22566] Stock rotation cronjob reporting has issues
  • [23933] commit_file.pl Can’t call method “get_effective_marcorgcode” on an undefined value at /usr/share/koha/lib/C4/AuthoritiesMarc.pm line 578.

Course reserves

  • [22142] An item’s current location changes to blank when it is removed from Course Reserves
  • [23083] Course reserve item edit fails if one does not set all values


  • [23265] Update to DB revision fails: Unknown column ‘me.item_level_hold’
  • [23579] error during web install: ‘changed_fields’ can’t have a default value
  • [23809] Update to DB revision fails

Fines and fees

  • [19919] Writing off a Lost Item Fee marks as “Paid for by patron”
  • [23826] Manual Invoice does not use new accounttype and status for fines
  • [24100] “Pay selected” is broken

Hold requests

  • [13640] Holds To Pull List includes items unreserveable items
  • [14549] Hold not removed when item is checked out to patron who is not next in priority list
  • [23116] Cannot place overridden holds
  • [23484] Holds to pull (pendingreserves.pl) uses removed default_branch_item_rules table
  • [23710] Holds broken on intranet, displays a JSON page with an error
  • [23964] An item level hold when placed is set to Waiting, if ReservesNeedReturn is set to Automatic


  • [23713] Subscription add form broken for translations


  • [23229] “Get all requests” API call fired when loading any ILL page
  • [23529] Interlibrary loan javascript is broken

Installation and upgrade (command-line installer)

  • [23090] MySQL validate_password plugin breaks koha-create
  • [23168] Database Updates broken due to conflicts in bug 21073 and bug 22053
  • [23250] koha-create generates broken mysql password
  • [23813] DB error on

Installation and upgrade (web-based installer)

  • [23353] ACQ framework makes fr-CA web installer explode
  • [23396] Rancor fails to load: insert_copyright is not defined

Label/patron card printing

  • [23289] Label Template – Creation not working (MariaDB >= 10.2.4)
  • [23455] Patron card printing from Patron lists is broken


  • [17526] OPAC lists sortfield breaks with a (

MARC Authority data support

  • [23053] Local-Number cannot be used for authority matching due to non-existence of ‘phrase’ index

MARC Bibliographic record staging/import

  • [23846] Handle records with broken MARCXML on the bibliographic detail view


  • [22210] ManaKB should not require firstname and lastname for signup
  • [22915] Cannot subscribe to Mana-KBNotices
  • [23181] Unable to use payment library in ACCOUNT_PAYMENT or ACCOUNT_WRITEOFF notices
  • [23765] After TranslateNotices is set to ‘Don’t allow’, email settings still show multiple languages
  • [24064] DUEDGST typoed as DUEGST
  • [24072] Typos in advance_notices.pl causes DUEDGST not to be sent


  • [23150] GDPR feature breaks patron self modification on OPAC
  • [23151] Patron self modification sends null dateofbirth
  • [23194] Public notes items in the OPAC should allow for HTML tags
  • [23225] OPAC ISBD view returns 404 when no item attached
  • [23253] OpacNavRight does not display correctly for opacuserlogin disabled or self registration
  • [23428] Self registration with a verification by email is broken
  • [23431] having Date of birth in PatronSelfModificationBorrowerUnwantedField causes DOB to be nullified
  • [23467] Duplicated screen if error in opac-reserve.pl
  • [23530] Opac-basket.pl script accidentally displays ‘hidden’ items
  • [23868] PayPal payment button is never enabled


  • [17140] Incorrect rounding in total fines calculations, part 2
  • [23082] Fatal error editing a restricted patron
  • [23822] Regression: As of 19.05.04 deletion of patrons with outstanding credits is silently blocked
  • [23905] Button “Search to add” doesn’t work on Quick add new patron
  • [24113] guarantor info lost when a duplicate is found


  • [23597] Holds API is missing reserved parameters on the GET spec


  • [23626] Add a system preference to limit the number of rows of data used when charting or exporting report results
    Sponsored by Fenway Library Organization and Higher Education Libraries of Massachusetts
  • [23730] Exporting reports is broken
  • [23982] Count/pagination broken for reports with duplicated column names


  • [23057] If checked_in_ok is set and item is not checked out, alert flag is supressed for any reason


  • [11677] Limit to Only items currently available for loan or reference not working
  • [23425] Search explodes with “invalid data, cannot decode object”

Searching – Elasticsearch

  • [22997] Searching gives no results in auth_finder.pl
  • [23004] Missing authtype filter in auth_finder.pl
  • [23089] Elasticsearch – cannot sort on non-text fields
  • [23322] Elasticsearch – Record matching fails when multiple keys exist
  • [23630] Elasticsearch indexing is removing field 999
    In Koha::SearchEngine::Elasticsearch::Indexer::update_index() first arg record ids is now mandatory
  • [23719] Record matching for authorities using defined fields is broken under ES
  • [23986] Batch Record Deletion does not remove records from Elasticsearch search index

Staff Client

  • [23315] Some system preferences are no longer editable

System Administration

  • [23104] Regression (18925) in circ rules – unlimited vs 0
  • [23309] Can’t add new subfields to bibliographic frameworks in strict mode
  • [23398] Exporting/Reimporting frameworks in XML format will give incomplete results
  • [23772] Itemtype icons not showing in table
  • [23804] Itemtype not checked when editing
  • [24026] Wrong parameters in Koha/Templates/Plugin/CirculationRules.pm and smart-rules.tt

Test Suite

  • [21985] Test t/db_dependent/Circulation.t fails if SearchEngine is set to elasticsearch
  • [23234] Circulation.t failing when comparing dates that seem identical
  • [24022] Z3950Responder tests are failing randomly


  • [11642] Improve Batch patron deletion and anonymization GUI to make consequences clearer
  • [15814] Templates for MARC modification: Edit action does not work when Description contains ‘
  • [17359] Patron import results use wrong encoding
  • [18707] Background jobs post disabled inputs
  • [18710] Wrong subfield modified in batch item modification
  • [23093] Error during upgrade of OpacNavRight preference to Koha news
  • [23963] Visible reduction in image quality

Web services

  • [22249] Error when submitting Mana comment

New System Preferences coming in 19.11

























Read more by Kelly McElligott

Tags 19.11, upgrades, release