hook_views_post_execute() don't work on AJAX View with exposed filters after 1st refresh
When checking the current route match in a Views Ajax request you get the route of the Views Ajax endpoint views/ajax and not the route of the page where the View is placed on.

However, Ajax requests contain the original path of the View and ViewAjaxController::ajaxView() puts this path in the global current path stack (for the pager to work correctly).

So if the path is no longer in the request

$path = \Drupal::request()-&gt;request-&gt;get('view_path');


it should be transfered to:

$path = \Drupal::service('path.current')-&gt;getPath();


Which should then point to the node route you are looking for.