While migrating a site from drupal 7 to 8 I found these errors at the field formatter migration:

For the sake of SEO, here is the error in text format:
The "text_plain" plugin does not exist
Debugging this migration led me to this line, where there is a replacement for text_default but not for text_plain:

| Comment | File | Size | Author |
|---|---|---|---|
| #5 | drupal-map-text_plain-formatter-3042223-5.patch | 2.62 KB | juampynr |
| #5 | drupal-map-text_plain-formatter-3042223-5-test-only.patch | 1.9 KB | juampynr |
| #2 | drupal-map-text_plain-formatter-3042223-2.patch | 737 bytes | juampynr |
| screenshot-21-40-18.png | 430.36 KB | juampynr | |
| screenshot-21-34-09.png | 348.22 KB | juampynr |
Comments
Comment #2
juampynr commentedHere is a patch that fixes it.
Comment #3
juampynr commentedComment #4
heddnNW because needs tests.
Comment #5
juampynr commentedHere is a test only patch and a full patch with the fix.
Comment #7
heddnFully tested. Looking good.
Comment #8
catchfixed this on commit to 8.8.x and 8.7.x, thanks!
Checking changed files...
PHPCS: core/modules/text/src/Plugin/migrate/field/d7/TextField.php passed
g
FILE: ...es/text/tests/src/Unit/Plugin/migrate/field/d7/TextFieldTest.php
----------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
----------------------------------------------------------------------
52 | WARNING | [x] A comma should follow the last multiline array
Comment #11
alexpottThis change introduced scalar typehints. Since this was backported I've removed them so PHP5 tests pass on PHP 5.5.
Committed and pushed e1f5186b43 to 8.8.x and 1f8ae1386b to 8.7.x. Thanks!
Comment #15
dariogcode commentedI'm still receiving this error in Drupal 8.7.7
Comment #16
gbirch commentedYes, I have the same problem with Drupal 8.7.8
This patch is great, as far as it goes, but you also need the same replacement for the "string_long" case (D7 long plain text fields). Also for telephone fields, but that's another issue.
i.e. at line 35 of TextField.php:
case 'string_long':
$formatter_type = str_replace(['text_default', 'text_plain'], 'basic_string', $formatter_type);
break;
Will roll a patch when I have a chance, but this may help someone in the meantime.