Всем привет.
Начитался макулатуры о modx и решил, что мне необходимо использовать кастомный роутинг для своего расширения. Задача такая: по переходу на определенный url отдавать пользователю на скачивание файл, который заполняется данными из БД во время запроса.
Так вот, везде пишут, что для этого мне нужно написать плагин и перехватить url на событии PageNotFound. Так как более вменяемого способа я не нашел, попытался делать так (если есть какой-то более удобный или правильный способ организации роутинга, то пожалуйста поделитесь).
Теперь о проблеме: при попытке перейти по несуществующему url, я должен получать ошибку 404, но не в моем случае: запрос выполняется до тех пор, пока Nginx не отваливается по таймауту (504 ошибка), увеличил время ожидания ответа — получил 502 (это уже похоже, что php-fpm по таймауту отвалился).

В общем, из-за этой беды не могу пользоваться событием PageNotFound.
В логах modx, nginx, php-fpm никакой полезной информации нет.
Подскажите, пожалуйста, в какую сторону копать и что может быть причиной такого поведения. Сайт этот достался мне в наследство, в нем уже достаточно говнокода, поэтому буду признателен за подсказки, хотя бы в какую сторону ковырять.