Important Upgrade Considerations

This section outlines all changes that require special consideration for customers in production.  Configuration changes may be needed to prevent operational interruptions.  See checklist for guidelines on how to fill this out. 

Changes and Required Actions

Functional AreaChange or AdditionConsiderationsAction timing,
Action required
CommentsContact person,
Related JIRAs
Affected app or moduleWhat has been changed or added that should be noted for this releaseWhat challenges may arise related to this change or additionWhen can the action be taken (before, during or after upgrade)?
If applicable, detail what action(s) must be taken here
Name of user leaving comment: comment on what you encountered or ask a question @mention Contact personUser name of person that can provide additional detail.
Include issue link for bug fix, story or feature that applies

Title level requests are available with Morning Glory through Settings > Circulation > Title level requests

Libraries must opt in to use title level requests; item level requests functionality continues to be available.

Requests on boundwith and multivolume materials should be placed as item level requests. 

Page requests cannot be moved above hold requests or reordered within the queue. 

Data migration included in Lotus (and update in Lotus HF1) must be completed before Title level requests can be enabled. 
Title level requests can be enabled after upgrade is complete. All open requests should be resolved before enabling title level requests to avoid queue ordering issues. 

In Request details>Request information>Position in queue - # (# requests)  means # position in request (# other open not yet filled reorderable requests). Page requests are not counted in (# other open not yet filled reorderable requests) since they cannot be reordered. 
Fees/FinesThe "New fee/fine" page has now been replaced with a modal, in order to match "Pay fee/fine", "Waive fee/fine", etc.

Fees/FinesThe fee/fine pages are now using the "Effective call number string" rather than just the "Call number".

RequestsA request containing a hardcoded UUID (because an item or instance was discovered to no longer be present during data migration in Lotus) has an updated Action menu only containing Cancel, and disabled links to item and instance records. 

Patron Notices - emailAddition: In the very last step of the process of sending an email, IF an error happened somewhere in the process, that stopped sending the email, THEN FOLIO will retry sending the email. This is a tenant-wide configuration and is managed by mod-email.
See the ticket for the numbers of retry attempts and max age eligible for retry, and how to configure if you DON'T want to try resending failed emails.
SearchInventory search supports now contributors browse. Changes to the Authority search were implemented.mod-search indices will need to recreate for both instance and authority as described hereDuring the upgrade process

Must re-index search when applying Hotfix #1

For upgrading mod-search-1.7.5 to a higher version - reindex is required after update (for a change introduced in mod-search-1.7.6)

mod-inventory-storage To load MARC Holdings during data import flow, we should use pre-defined MARC Holdings source (which is created in the reference data with pre-defined id = 036ee84a-6afd-4c3c-9ad3-4a12ab875f59)Anyone who plans to import and store MARC holdings. 

Before upgrade.

Reference data should be added during an upgrade (by default) 

Export eholdings (package and title+package details)Export eholdings (package and title+package details) will not be included in Morning Glory release until performance issues are resolved. (UXPROD-177)

OAI-PMH (mod-oai-pmh)

mod-oai-pmh does not support multiple concurrent harvests of full library collection.

Recommended edge and mod-oai-pmh module settings that prevents harvests end prematurely on a larger data sets:

edge-oai-pmh memory settings: -Xmx952m

mod-oai-pmh ENV recommendation: 

      { "name": "DB_QUERYTIMEOUT", "value": "2700000" },
      { "name": "DB_MAXPOOLSIZE", "value": "20" }

Multiple concurrent harvests of full library collection were never supported. Results of the performance tests when running multiple full harvests can be found here.   

mod oai-pmh provides APIs for monitoring the harvesting process as documented in the READ.ME file.

Additional information: OAI-PMH Best Practices

Invoices and Invoice settingsThe management of batch voucher export has been move out of settings to a full screen view in the invoice app UI. The details of batch export are still found in system settings.User who work with batch voucher export should be updated on where they can access it.Access batch voucher export from the action menu in the invoice app.
Dennis Bridges 
MARC Authority records

Mapping rules were changed. It's required to update default mapping rules in the database. 

Only applies to a library that has MARC authority records in Lotus environment

Apply after mod-source-record-manager upgrade. Please do the following actions. 

  1. Call endpoint PUT {{okapi.url}}/mapping-rules/marc-authority/restore
  2. To apply mapping rules changes to migrating authority records - run this standalone application - Marc Authorities update instructions (Recommendation to run during non-working hours) 

Data export New default job-profile for authorities was added. It requires to load reference for module.Use MARC authority records


Requires to load reference for module.

  • Add loadReference=true to tenantParameters  

Shans Kaluhin 
EDIFACT order exportHourly and monthly export scheduling will be disabled. If you already configured these for certain organizations you may notice sporadic export performance. User will need to rely on Daily or Weekly options to use the scheduled export.Export schedule settings can be updated before or after the organization has upgraded to morning glory. The side effects are that the export may not run at the desired time when using hourly or monthly schedules.These option will be available again once the issues with them have been resolved. We are targeting Nolana for the release of these updates.
edge-sip2FOLIO user (used for connections from SC) requires permission search.instances.collection.get
New permission can be added to user before or after upgrade - but be done prior to operating SC (after upgrade)

SIP2-115 - Getting issue details... STATUS

Data import profiles (non-default) upgrade issue

New functionality was added to show/hide job profiles. With upgrade to Morning Glory, existing non-default data import profiles do not display due to a missing show/hide value. 

MODDICONV-270 - Getting issue details... STATUS

Resolved with MG Hotfix released:

OR manual run script

Link to scripts file for v1.4.2:

Instructions for running manually:

File contains 8 scripts in total (1 for deleted field and 1 for hidden field, for each of 4 profile types). In order to run scripts in this file, it's needed to replace ${myuniversity} with actual value (f.e. diku) and ${mymodule}(mod_data_import_converter_storage) for each script in file (f.e. to have `diku_mod_data_import_converter_storageas a schema name)

Data ImportReminder when upgrading
When upgrading from one flower release to the next, confirm that the deployed modules are of compatible modules and are in the same release. If incompatible modules versions, Kafka messages consumed by older versions of modules can cause problems. When entity schema changes in such a way it usually leads to an API version bump and if module that requires a specific version of the API deployed and the API is not there - it results in an error. Unfortunately, there is no such mechanism for changes in Kafka message payload - topics that are used are the same, therefore a consumer in an older module version will consume the messages.

Kateryna Senchenko 

MODSOURCE-543 - Getting issue details... STATUS

Data ImportSettings and Configuration
Refer to Settings and Configuration page for details on modules involved in Data Import. Adjust if needed to optimise performance.
GOBIInvalid mappings have been removed. Essentially mappings for fields that are no longer shown in the UI and have been depricated.Any mappings you may have that include reference to removed fields will produce errors and cause the system to revert to the standard mapping configuration.

When upgrading review the gobi mappings and remove reference to the mapping options that have been removed. see this JIRA MODGOBI-167 - Getting issue details... STATUS regarding exactly what options have been removed.

Dennis Bridges 
Bulk EditAdditional environment variables to back-end module deploymentThis module uses separate storage of temporary (local) files for its work. These files are necessary for processing bulk-edit business flows. Any S3-compatible storage (AWS S3, Minio Server) supported by the Minio Client can be used as such storage. Thus, in addition to the AWS configuration of the permanent storage, one needs to configure the environment settings for temporary files storageFor mod-data-export-worker, add LOCAL environment variables discussed here: otherwise Bulk Edit file uploads will fail in Folio.

FOLIO-3581 - Getting issue details... STATUS

Data ImportProvided script to clean up Job profiles in case linked Mapping or Action profiles were editedEditing Mapping or Action profiles already linked to a Job profile result in increased profile size (unnecessary elements are stored), which may lead to slow performance of mod-data-import-converter-storage, Kafka errors during DI process and excessive memory consumption by mod-source-record-managerFollow the instructions at point 11 - Scripts for Inventory, Source Record Storage, and Data Import Cleanup

Kateryna Senchenko  

UIDATIMP-1369 - Getting issue details... STATUS

MODDICONV-293 - Getting issue details... STATUS

New Apps

Bulk edit.  Morning Glory functionality covers:

  • Bulk edit  - in app approach:
    • Inventory items locations (temporary and permanent)
    • Inventory item statuses
  • Bulk edit - csv approach:
    • Users records

The Bulk edit app requires following permissions to edit inventory items:

  • Bulk Edit: In app - Edit
  • Bulk Edit: In app - View

The Bulk edit app requires following permissions to edit user records:

  • Bulk Edit: (CSV) Edit
  • Bulk Edit: (CSV) View

Known limitations:   

  • Bulk edit of user records - up to 2500 records at one time.   
  • Bulk edit of item records - up to 10 000 records at one time

Module configuration:

For stable module operations the following mod-data-export-worker configuration is required: Java args -XX:MetaspaceSize=384m -XX:MaxMetaspaceSize=512m -Xmx2048m, AWS container: memory - 3072, memory (soft limit) - 2600, cpu - 1024.

Removed Apps

Permissions Updates

AppNew PermissionsDeprecated PermissionsProduct Owner
Data Import

Data import: Can upload files, import, and view logs (renamed from Data import: All permissions)

Data import: Can delete import logs

Data import: Can view only

Settings (Data import): Can view only

Ann-Marie Breaux 
eUsageGeneral: Settings, All, Read-only:
  • Settings (eUsage): Can view and edit all settings
  • eUsage: All permissions
  • eUsage: Can view usage data providers and view/download usage reports
Usage data providers actions:
  • eUsage: Can create and edit usage data providers
  • eUsage: Can delete usage data providers
Reports actions: 
  • eUsage: Can upload usage reports
  • eUsage: Can delete usage reports
  • eUsage: Can start harvesting for a single provider

There has been a major refactoring of all eUsage permissions ( UXPROD-3734 - Getting issue details... STATUS ). Please check existing permission sets and re-assign. 

Annika Schröer 

Invoice: Export search results

Invoice: Voucher export


Finance: Export finance records

ReceivingReceiving: Export search resultsNone


Orders: Can create new Orders and Order lines

Orders: Can delete Orders and Order lines

Orders: Can edit Orders and Order lines

Orders: Can view Orders and Order lines

Orders: Cancel order lines

Orders: Cancel purchase orders

Orders: Can create new Order lines

Orders: Can delete Order lines

Orders: Can edit Order lines

Orders: Can view Order lines

Orders: Can create new Orders

Orders: Can delete Orders

Orders: Can edit Orders

Orders: Can view Orders 

Orders: Edit orders should be marked as deprecated but this label will not appear in the UI until Nolana.

Requests, title level requestsSettings (Circulation): Title request level edit
Inventory / quickMARC 

quickMARC: View MARC bibliographic record

quickMARC: View MARC holdings record

Khalilah Gambrell 
InventoryInventory: Create order from instanceNone
MARC authorityMARC Authority: Delete MARC authority record
Khalilah Gambrell 

Known Issues


AppKnown issueWorkaroundJIRA issueProduct Owner
Settings > Inventory > Statistical codesHandle delete of statistical code associated with instance, holdings, or item in a properly manner. The approach we took for this issue MODINVSTOR-829 should be similar to what needs to be done for the other related issues, addressed in UXPROD-1889

UXPROD-1889 - Getting issue details... STATUS

RequestsWhen duplicating a request, the original pickup location selection is not preserved.Re-select the pickup location. 

UIREQ-751 - Getting issue details... STATUS

RequestsIn the Request details pane, the publication date may sometimes appear as "-", even though a publication date is listed in it's Inventory record. This happens when there is a character preceding the date, for example, c1905 or [1960]. Check the item or inventory record for the publication date. Correcting this has been added to a feature for future enhancements. 


Stephanie Buck 
Data import 

MODDATAIMP-705 - Getting issue details... STATUS

MODDATAIMP-705 - Getting issue details... STATUS

Ann-Marie Breaux 
MARC authorityFirst deletion of a MARC authority record may be delayed but the record is deleted. No workaround

UIMARCAUTH-159 - Getting issue details... STATUS

Bulk editWhen triggering the bulk edit of item records by submitting a list of holdings HRIDs, the reported number of the updated records might be incorrect.No workaround

UIBULKED-122 - Getting issue details... STATUS

Bulk editOn larger data sets (~ 10 000 records) there is a significant delay on the screen showing the preview of proposed changes (Are you sure? form) Wait until the form is populated and the Download preview button works

MODBULKED-36 - Getting issue details... STATUS

Title Level RequestsRequests with the status Closed - pickup expired are causing queue positions to be absent from the queue. For example, if Request A was position 1, and it's status changes to Closed pickup expired, then Position 1 will be absent from the queue. This does not affect the functionality of the queue.No workaround


Title Level RequestsWhen placing a title level request and the Title look-up is used in the request form, the title information isn't loading consistently. Use the Instance ID, or search for the title again. It usually loads properly the second time. 


Stephanie Buck 
Title level requests
  1. Users are able to recall items with statuses they should not be able to (Aged to lost, Claimed returned, Declared lost)
  2. Users unable to recall items with status In process, In transit, On order when TLR is enabled
  3. Item level policies are not being upheld by title level requests (Even though an item is not requestable via item level request by the patron, it could be used to fill the title level request upon check in)
No known workaroundsCIRC-1683, CIRC-1684, CIRC-1693Stephanie Buck 
Item LimitsWhen a patron reaches the Loan Policy Item Limit at checkout, the error message that appears in the "Item not checked out" pop-up always indicates that the limit is "1", when it could be another number.  Item limits work, but the message is incorrect.Check the Loan Policy to see what the Item Limit is.

UIU-2652 - Getting issue details... STATUS

Holly Mistlebauer 
RequestsMorning Glory includes the implementation of shortcut keys for the request policy, but inadvertently left out adding the UI caret and shortcut key menu to the app. This will be fixed in a future release.Reference documentation for the shortcut key list as needed -

UIREQ-817 - Getting issue details... STATUS

Inventory/Single Record Import

When importing a Single record using the Import button in Inventory's action menu, then an instance is created. But if the user then use the 'back' button in the browser, a duplicate import of the same record is created

Do not use the 'back' button.

UIIN-2197 - Getting issue details... STATUS

Charlotte Whitt 
Circulation log

An item referred in the Circulation log is allowed to be deleted without any warning. But in the Circulation log, when clicking on the referred item (which is a link) then it throws an ugly error. 

New work has been identified: UXPROD-3738, and the architect has written up a technical spec document: UXPROD-3738 Circulation log update: deleted item records

For now accept the ugly error. This will be fixed when the work on UXPROD-3738 can be prioritized by the development team Vega. 

UXPROD-3738 - Getting issue details... STATUS

UsersInvalid date values can cause the user expiration timer to break and freeze the FOLIO tenant.

The Users app can allow saving of records with invalid dates, like a birthdate of 0000-00-01. The User UI context is fixed in the Nolana release; there are larger platform issues that also need to be resolved, being tracked in RMB-943.

If these dates are present, the user expiration timer will not be able to process that user record. The timer will continue to attempt to process the record and eventually the entire FOLIO tenant will freeze.

If you are upgrading an existing FOLIO tenant to Morning Glory, the recommendation is prior to migration to check for these existing date values and resolve them if they are present.

Suggestion from Index Data:

"You can find the user records in the database with a query something like this:

SELECT jsonb FROM diku_mod_users.users
WHERE jsonb->'personal'->>'dateOfBirth' !~ '^[0-9]{4}';

....You can also control the timer that was hanging up the system using the timer management API:

You could reset the interval to be very long and restart your mod-users instances (which releases all the hanging connections and allows Okapi to come back to life), then fix the records and set the timer back to its usual interval."

MODUSERS-320 - Getting issue details... STATUS

UIU-2651 - Getting issue details... STATUS

RMB-943 - Getting issue details... STATUS

AgreementsThe "Is perpetual" property for an agreement cannot be set or editedIf the "Is perpetual" is already set for an agreement, this will remain set, but the value will not be displayed in the Edit form (it will display in the View correctly), and in the Edit (or Create) form for an agreement there are no options in the dropdown for the "Is perpetual" property

ERM-2464 - Getting issue details... STATUS

Owen Stephens 
AgreementsSome of the non-english translations for labels in the UI related to "Supplementary properties" are incorrectThere is no work around for this issue at this time

ERM-2472 - Getting issue details... STATUS

ERM-2478 - Getting issue details... STATUS

ERM-2479 - Getting issue details... STATUS

LicensesSome of the non-english translations for labels in the UI related to "Terms" are incorrectThere is no work around for this issue at this time

ERM-2472 - Getting issue details... STATUS

ERM-2478 - Getting issue details... STATUS

ERM-2479 - Getting issue details... STATUS

Finance, orders, invoices

When modules attempt to update transactions in finance app they may receive an error regarding a null version. Eg. 


    "errors": [


            "message": "{\n  \"errors\" : [ {\n    \"message\" : \"Conflict when updating a record in table transaction: Cannot update record e52816e8-c4c9-4648-b65d-XXXXXXXXX because it has been changed (optimistic locking): Stored _version is <NULL>, _version of request is 1\",\n    \"code\" : \"conflict\",\n    \"parameters\" : [ ]\n  } ],\n  \"total_records\" : 1\n}",

            "code": "genericError",

            "parameters": []



    "total_records": 1


Optimistic locking should remain disabled for the Morning Glory release.

Instructions regarding exactly what to disable can be found here under "Before Running" This was discovered while preparing a script to fix issued cause by past rollovers.

MODFISTO-340 - Getting issue details... STATUS

Dennis Bridges 
mod-searchboundWith flag is not updated in mod-searchFor mod-search either remove KAFKA_EVENTS_CONSUMER_PATTERN  env variable so that the default ($ENV\.)(.*\.)inventory\.(instance|holdings-record|item|bound-with) is used, or add bound-with to your custom pattern.

MSEARCH-458 - Getting issue details... STATUS

Purging a tenantAfter disabling modules with purge option for one tenant other tenants get this error:
"ERROR: function f_unaccent(text) does not exist (42883)"
This affectes only modules where environment variable DB_MAXSHAREDPOOLSIZE is set.
After disabling modules with purge option restart all modules where environment variable DB_MAXSHAREDPOOLSIZE is set.

RMB-955 - Getting issue details... STATUS

Julian Ladisch 

Additional known issues

Key Summary T Updated Potential Workaround Development Team Status Resolution Release

Notes on functionality

PO Release Presentations

PresentationPresentation datePresenterSIG Meeting (link)Notes
Inventory2022.07.28Charlotte WhittMM-SIGView demo and slide deck
Cataloging2022.08.11Khalilah Gambrell
View slide 8

Dennis Bridges

Includes gifs.
Data Import2022.08.04Ann-Marie BreauxMM-SIGDemo at SIG meeting, plus slide deck
ERM: Agreements and Licenses2022.08.10




View slide 2, and recording from 08:50-24:50
Bulk edit2022.08.31Magda Zacharska WOLFcon presentation

Post-Release Hotfixes

Hot fix release #1 - RELEASED AT DECEMBER 20

Tickets list

Key Summary T Assignee P Resolution Reporter

Modules list

Project Priority
Bug Fest 1 0 0 1
ERM Platform 1 4 2 7
FOLIO 1 0 0 1
Okapi 1 0 0 1
mod-authtoken 0 2 0 2
mod-circulation 1 3 0 4
mod-data-export 0 1 0 1
mod-data-export-worker 0 1 0 1
mod-data-import 0 1 0 1
mod-di-converter-storage 1 2 0 3
mod-erm-usage 0 1 0 1
mod-kb-ebsco-java 0 3 0 3
mod-orders 1 0 0 1
mod-patron-blocks 0 1 1 2
mod-search 0 3 0 3
mod-source-record-manager 0 1 0 1
stripes-components 0 1 0 1
ui-bulk-edit 0 2 0 2
ui-data-export 0 1 0 1
ui-quick-marc 0 1 0 1
Total Unique Issues: 7 28 3 38
Showing 20 of 20 statistics.
View in Jira

New Features

Key Summary Development Team

Nonfunctional Requirements (NFR) Features

Key Summary Development Team

Closed Bugs

All Closed Bugs and Stories

Remaining Open Bugs at Time of Release

Support Period

Morning Glory will be supported with critical security and bug fixes until Orchid (R1 2023) is released (around April 2023). At the Morning Glory release day the Kiwi release has reached end of life and is no longer supported. See FOLIO support policy.

  • No labels


  1. Hi! For OAI-PMH (mod-oai-pmh) my current configuration is     }, {
          "name" : "DB_QUERYTIMEOUT",
          "value" : "604800000"
          "name" : "DB_MAXPOOLSIZE",
          "value" : "20"

    It is probably the default config because I cannot remember having ever changed it.  What does the ENV recommendation

      { "name": "DB_QUERYTIMEOUT", "value": "2700000" },  mean ?

    Is this a minimum value or do I need to spin down my higher value to this value in order to prevent harvests from ending prematurely ?

    1. Viachaslau Khandramai  - could you please clarify the required settings for OAI-PMH?

  2. these permissions also seem to be new for Morning Glory, if so can we add to list above?

    Inventory: Create order from instance
    Receiving: Export search results