I am using Drupal 8 and try to validate the creation of a new content node, of a custom content type. It seems I cannot find the right hook. I tried using hook_node_presave, however, the only way to stop node from creating is to throw an exception. This is rather user unfriendly. function custom_module_node_presave($node) { if($node->getType()=='custom_content_type'){ if(some_business_rules_apply()){ drupal_set_message('You cannot add a new node.','error'); # cancel saving throw new \Exception(t('You cannot add a new node.')); }else{ # do something more } } } I tried to use hook_node_validate but it seems like it is not called. Do I miss something? Maybe, I use the wrong name for the hook function? Is there some kind of example for hook_node_validate? function custom_type_node_validate(\Drupal\Core\Entity\EntityInterface $node, $form, &$form_state){ \Drupal::logger('My logger')->info('Node validate'); }