Сначала давайте определимся, должен ли это быть код 4xx или 5xx. Хотя истинная проблема не на стороне клиента, клиент должен изменить запрос, чтобы он был успешным. Так что это должно быть 4xx.
Конечно, если это была просто ошибка сервера, которую вы не ожидали - это должна была быть 500 Internal Server Error. Но вы решили жить с этим дефектом, так что теперь это часть вашего контракта. И клиент должен знать, что если такая ошибка произойдет - нужно запросить более узкий период.
В вашем случае, поскольку синтаксис правильный, 422 Unprocessable Entity , вероятно, является лучшим вариантом. Это все еще немного, так как 422 должен использоваться, когда клиент отправляет объект, который не имеет смысла логически, но это самый близкий код, который существует там. Вы всегда можете включить больше подробностей в тело ответа.
Примечание: это расширенный код WebDAV , а не исходный код HTTP. Если вы хотите использовать чистый HTTP, я бы использовал 400 и указал причину в теле, чтобы клиент мог разобрать ее. Я не думаю, что в чистом HTTP есть что-то подходящее.