Status: Blocked (View Workflow)
21 July 2022: this bug no longer reproduces, but there is a different bug, related to 001/003/035 handling, which happens after the second update (which uses MARC-MARC UUID match and Update MARC Bib action). That is being fixed in MODSOURCE-528. Once that is finished, retest this and confirm it has been corrected. For now, blocking this issue.
When a FOLIO instance is being overlaid with a MARC update, if the instance changes cannot be saved because of an issue with the MARC, the SRS record is still created and attached to the instance record, but is invisible from the UI. Later, if another MARC record is overlaid, the update will be rejected because FOLIO will see the 001 on the MARC record being changed and think you are trying to change the instance HRID.
Steps to Reproduce:
- Log into some FOLIO and create a source=FOLIO instance
- Create a data import profile that mimics the logic of single record import (first match on 999$i in marc then for non matches, match on instance uuid, then do instance update)
- Overlay that record with MARC that has an error (in this case a blank 050$a). If using the attached MARC record, edit it before importing, so that it has the newly-created Instance's UUID in 999 ff $i. Then import the file, using the new profile created in step 2
- The record will still say source FOLIO and the data import log will report "completed with errors".
- Export the source FOLIO record using data export, and you will see that what is exported is the MARC record you had tried to overlay, and that it will still have its original 001 and not the hrid as the 001.
- Go back to the instance and try to overlay it with single record import, you will see it fail. The error in the log is similar to:
io.vertx.core.impl.NoStackTraceThrowable: The hrid field cannot be changed: new=AAL0869583-0001, old=15011905
If the change to the instance is rejected, the relationship to the imported SRS record should not be saved. OR if the relationship is saved, it should be properly reflected in the instance, along with a correct 001.