Problem/Motivation
During the migration the some data can be migrated as failed. I know that one of the migrate plugin throws an exception with a detailed message. But after the migration is finished only summary is presented (X imported, Y failed). The messages are
empty. After debugging I found out that messages are cleared every time in Drupal\migrate\Plugin\migrate\source\SourcePluginBase::next() file core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php:
// Clear any previous messages for this row before potentially adding
// new ones.
369: if (!empty($this->currentSourceIds)) {
370: $this->idMap->delete($this->currentSourceIds, TRUE);
371: }
So, every time as the new row will be migrated the next() method will iterate over previous rows and it will clear their messages.
Proposed resolution
I think that the message should be cleared before the row is scheduled to import.
User interface changes
No visible changes.
API changes
None.
Data model changes
None.