<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:22:16 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-2655] Upgrade fails on failure to update reference data</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2655</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;By using the UI or the APIs (that is, in sanctioned ways) it is possible to create user data that conflicts with incoming reference data on module upgrade.&lt;/p&gt;

&lt;p&gt;This conflict causes loading reference data to fail.&lt;/p&gt;

&lt;p&gt;This failure aborts the entire upgrade. Okapi continues to route to the original (un-upgraded) module set for the tenant.&lt;/p&gt;

&lt;p&gt;The storage module schemas, however, may have been fully or partially upgraded, so system storage may be left in an inconsistent state. It is likely impossible to know the state of the system storage without Okapi logfile analysis and module code inspection.&lt;/p&gt;

&lt;p&gt;There are a few ways to address this, from fairly simple to quite complex:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Modules could log a failure to load reference data as a warning or error in the log, but still respond to the tenant initialization request with a success or partial-success error code.&lt;/li&gt;
	&lt;li&gt;Okapi could respond to the tenant install call with a status of something like &quot;enabled with warnings&quot; and (ideally) a message in the install API response.&lt;/li&gt;
	&lt;li&gt;Modules could adopt a more precise and nuanced approach to managing reference data. For example, reference data could be treated as immutable, and protected from updates either using the UI or the API.&lt;/li&gt;
	&lt;li&gt;Modules could adopt a layered approach to reference data management, as proposed in &lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/SYSOPS/Upgrades+with+Reference+data&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-org.atlassian.net/wiki/display/SYSOPS/Upgrades+with+Reference+data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This issue was created to address the immediate concern of upgrade failure leaving a system in an inconsistent state.&lt;/p&gt;

&lt;p&gt;See also&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/TC/Improved+Handling+of+Reference+Data+During+Upgrades&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;Improved Handling of Reference Data During Upgrades&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/FOLIOtips/Settings+-+Reference+data+decisions+and+load+sequence+for+migration&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;Settings - Reference data decisions and load sequence for migration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="79677">FOLIO-2655</key>
            <summary>Upgrade fails on failure to update reference data</summary>
                <type id="10001" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium">Bug</type>
                                            <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</priority>
                        <status id="1" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="5c706fbb47a54a6728e59df2">Wayne Schneider</reporter>
                                    <labels>
                            <label>keep-bug</label>
                            <label>platform-backlog</label>
                            <label>platform-core</label>
                    </labels>
                <created>Mon, 22 Jun 2020 18:31:17 +0000</created>
                <updated>Fri, 24 Mar 2023 16:12:52 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                    <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="56694">RMB-873</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="81628">FOLIO-2604</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="13333">UXPROD-3111</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10144"><![CDATA[Core: Platform]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzzhhr:jr</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="773">CP: Roadmap backlog</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>