Updating my test site from 8.2.7 to 8.3.0 fails in the database update. Same thing happens whether I do it with drush or through the web interface. Here is the full error output:
system module
Update add_region_to_entity_displaysFailed: Drupal\Component\Plugin\Exception\PluginNotFoundException: The "entity_reference_autocomplete_category" plugin does not exist. in Drupal\Core\Plugin\DefaultPluginManager->doGetDefinition() (line 52 of /home/bemsi/public_html/ja/drupal8-composer/web/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php).
PHP 5.6.28 with the status page all green except for this db problem and the warning about experimental modules (Datetime Range, Migrate).
What extra info can I provide?
Comments
Comment #2
cilefen commentedComment #3
cilefen commentedComment #4
lynxlynxlynx commentedDrush is at 8.1.10, yes. The site update was done through composer, first core&deps, then a general update (no arguments).
grepping for autocomplete_category only showed it in database dumps, so I don't know how to find its source.
List of extra modules:
Comment #5
gnugetThis might be related with: #2868601: PluginNotFoundException with new release
Comment #6
berdirentity_reference_autocomplete_category is not from facets and I have not found *anything* on google, could have been custom code. Do you remember having installed any special modules or or so related to entity reference fields/autocomplete handling that you removed again?
Please enable verbose error logging and provide a full backtrace.
It's possible that you have some kind of widget configuration that uses a plugin that no longer exists. At runtime, it possibly falls back to the default plugin but the update code might not do that.
Try doing a configuration export and search for it in there, that should tell you which entity type/bundle that is, then you can go to the UI and reconfigure the problematic field.
Comment #7
lynxlynxlynx commentedI don't remember installing anything exotic (it's tracked in git), except testing a cms2cms migration. However the bridge's source code also contains not even partial matches.
However, looking at drush cex, there are mentions in core.entity_form_display.node.article.default.yml and the field that it applies to was surely created by the migrator.
In the form display settings, nothing looked odd. Switching the mode from "Select list" to "Autocomplete" made the db update work though. I guess this report can be closed.
Comment #8
berdirGood to know that you were able to solve it for your site.
Lets keep this open for now, I think our update function should play safe and add a try/catch wrapper or include a hasDefinition() check before calling getDefinition() for those plugins. Clearly we're doing it when displaying articles, otherwise your site would have failed like that a long time ago.
Possibly that can also be done in the related issue, though then we could close this as a duplicate.
Comment #9
lynxlynxlynx commentedJust a small follow-up: the update to 8.3.1 went fine. Toggling back to a select list also changed the exported config appropriately, so I don't expect further problems when 8.3.2 comes around.
Comment #10
xjmThis is really interesting; what version of Drupal 8 did you migrate into originally?
Comment #11
lynxlynxlynx commentedJudging from my initial report: 8.2.7. Could have been .6 or .5 too, but nothing older.
Comment #16
quietone commentedClosed #2873708: Upgrade to 8.3.1: PluginNotFoundException: The "builder_formatter" plugin does not exist as a duplicate.
Comment #17
quietone commentedAdding related issue.
Comment #19
quietone commented@lynxlynxlynx, thanks for reporting back!
Reading through this again. The creator of the issue has solved the problem, so that is good.
It has been some time since I delved into the migration of fields, but this is not surprising. Migrate will do it's best to re-created everyone from the source site and sometimes would create things for which there was no plugin on the destinations. Over time the field migration have been improved.
I do not see anything to do here.
Therefore, closing as outdated. If this is incorrect reopen the issue, by setting the status to 'Active', and add a comment explaining what still needs to be done.
Thanks!