Yii2 custom error acction return 500 error code instead of 404

I use custom error action. Application always returns 500 error code instead of 404 when it render error page

Yii::$app->errorHandler->exception is a yii\web\NotFoundHttpException Object in these situations but server sends 500 header not 404

What is wrong in my code? Why do I always receive 500 header from the server?

app/config/web.php




    'components' => [

...

        'errorHandler' => [

            'errorAction' => 'site/error',

        ],

app/controllers/SiteController.php




       public function actionError()

{

    $url = Yii::$app->requestedRoute;

    $newUrl = false;


    $url = '/' . $url . '/';


    if($redirect = \app\models\Redirect::find()->where(['hash' => md5($url)])->one()) {

        ...


        $newUrl = '...';

    }


    if($newUrl) {

        Yii::$app->response->redirect($newUrl, 301);

        Yii::$app->end();

    } else {

        $exception = Yii::$app->errorHandler->exception;

        return $this->render('error', ['exception' => $exception]);

    }

}

app/views/site/error.php




<?php


use yii\helpers\Html;


?>

<div class="site-error">


    <h1><?= Html::encode($exception->getName()) ?></h1>


    <div class="alert alert-danger">

        <?= Html::encode($exception->getMessage()) ?>

    </div>

</div>

logs




2017-05-01 18:20:21 [127.0.0.1][-][54be31cgbi082k3uc37btzf47][trace][yii\web\Application::handleRequest] Route requested: 'sdhsdhsdgds8645733478'

2017-05-01 18:20:21 [127.0.0.1][-][54be31cgbi082k3uc37btzf47][error][yii\web\HttpException:404] exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "sdhsdhsdgds8645733478".' in C:\xampp\htdocs\site.dev\yii_site\vendor\yiisoft\yii2\base\Module.php:532

Stack trace:

#0 C:\xampp\htdocs\site.dev\yii_site\vendor\yiisoft\yii2\web\Application.php(102): yii\base\Module->runAction('sdhsdhsdgds8645...', Array)

#1 C:\xampp\htdocs\site.dev\yii_site\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application->handleRequest(Object(yii\web\Request))

#2 C:\xampp\htdocs\site.dev\site\index.php(6): yii\base\Application->run()

#3 {main}


    Next exception 'yii\web\NotFoundHttpException' with message 'Page not found.' in C:\xampp\htdocs\site.dev\yii_site\vendor\yiisoft\yii2\web\Application.php:114

    Stack trace:

    #0 C:\xampp\htdocs\site.dev\yii_site\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application->handleRequest(Object(yii\web\Request))

    #1 C:\xampp\htdocs\site.dev\site\index.php(6): yii\base\Application->run()

    #2 {main}