В первом случае это явное 404
Не надо путать "не найдены данные" (например при поиске на сайте) и "не найдена страница по урл".
либо не правильно обработать неправильные данные (к примеру в цикл строку засунул, а не массив)... во втором 500.
Это вообще к статусам не относится, скажем так - это ваш личный косяк как разработчика, и тут 500 выставлять вообще не надо, если это фатал - сервер сам отдаст 500, а если это не критичная фигня, где просто на страничке 1 строка не будет отображаться - это не 500, это руки кривые, просто поправить надо, никаких принудительных 500 не нужно, страница то рабочая.
Ставьте нормальные статусы для нормальной логики, 404 на отсутствующие роуты/страницы, 401 для действий требующих авторизации, и тд.