yii2 setFlash не работает вместе с редиректом. Не выполнять действие контроллера и сделать редирект -- средствами beforeAction()

setFlash() может "не работать" для конечной странице (на, той куда должен был попасть пользователь ), если на странице, где вызывался ридирект ваш метод всё-таки выполняется -- а значит сообщение как бы уже выставлялось для этого метода.

Возможное решение

Если вы используете beforeAction(), то отдельно делайте редирект и отдельно явно возвращайте false, в случае если метод перед которым делается проверка выполнять не нужно:

public function beforeAction($action)
{
	if (!parent::beforeAction($action)) { // если нужно учитываем родительский контроллер тут или выше
		return false;
	}

	$result  = shouldContinue(); // bool
	
	if (!$result) { // если действие выполнять не нужно
	    Yii::$app->session->setFlash('error', $errorMessage);
        $this->redirect(['/']);
	}

	return $result; 
}

Идея того, что иначе действие будет всё равно выполнено и это "съест" уведомление, предназначенное уже для другой страницы, взята отсюда: https://github.com/yiisoft/yii2/issues/9...