10

This is one of those times when I tried to add something and realized that I've got it applied to all displays. This time it was a vocabulary filter, so I clicked cancel and it didn't register so I clicked back to site.

After that I tried to edit and it returned

The website encountered an unexpected error. Please try again later.

The log shows this:

Exception: No entity type for field vid on view VIEW in Drupal\views\Plugin\views\HandlerBase->getEntityType() (line 712 of /PATH/core/modules/views/src/Plugin/views/HandlerBase.php).

I checked the active config and couldn't find anything with a vid. Clearing cache and reimporting the view config didn't fix it. So, is there a way?

2

2 Answers 2

15

A quick fix would be to delete the data from the expirable key/value store:

\Drupal::keyValueExpirable('tempstore.shared.views')
  ->delete('view_id');

Alternatively you could wait a week until it expires itself - probably not practical :)

5
  • Could you add a little context to your answer? I’ve faced this issue in the past but am not sure how to apply the above... thanks! Feb 2, 2019 at 17:04
  • 2
    @Prestosaurus: Use a custom module, or - even easier and with less hassle - the Drush PHP CLI. drushcommands.com/drush-9x/php/php:cli Feb 3, 2019 at 8:08
  • 2
    There’s also the /devel/php page if you have the devel module installed @Prestosaurus. Failing that you could literally delete the row from the key_value_expire table and clear the cache
    – Clive
    Feb 3, 2019 at 14:26
  • 6
    Just run this command with drush: drush eval "\Drupal::keyValueExpirable('tempstore.shared.views')->delete('YOUR_VIEW_ID');"
    – alesr
    Apr 4, 2019 at 9:37
  • You can also enter the PHP shell with drush [@example.com] php, and run it that way.
    – colan
    Feb 11, 2020 at 22:10
0

Agree with @Clive answer here, you can delete that particular row in the table 'key_value_expire'. Here is the sample:

  • viewName: homepage_slider
  • Then first check if that view exists in the table anywhere using the SQL command:
  • select * from key_value_expire where name='homepage_quote_slider';
  • if it shows the data then run the below command:
  • delete from key_value_expire where name='homepage_quote_slider';
  • Go back to your view and refresh it couple of times if it's still showing an error.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.