Спасибо всем. Случай, который вызвал этот вопрос, закончился хорошо, и отчасти благодаря выводам, которые я получил из ответов выше.
Моей первоначальной реакцией было быстрое падение, но я подумал об этом еще немного и пришел к выводу, что одна из функций моего модуля заключается в обеспечении стабилизирующего якоря для остальной системы. Это не обязательно означает принятие неверных данных, но выявление проблем, их изоляцию и прозрачную обработку до тех пор, пока мы не найдем решение.
Я планировал добавить новый обработчик и путь к коду для этого случая, который бы правильно выполнялся, как если бы это был особый вариант использования, который ранее не имел документов.
У нас была дискуссия, в которой я повторял необходимость решения проблемы на границе, но также был готов помочь. Я изложил свой план другой стороне, потому что у меня было подозрение, что моя позиция была расценена как чрезмерно педантичная, и что решение было воспринято как то, что мне нужно было только отключить ложную проверку безвредных данных, даже если они были неверными. В действительности, однако, мой способ работы в значительной степени зависит от данных, поэтому я объяснил, почему он должен быть правильным, и как он управляет поведением, и как при размещении этих данных я буду реализовывать специальный путь кода.
Я думаю, что это придало вес моей позиции и привело к более тщательному обсуждению отвращения другой стороны к исправлению данных. Выяснилось, что справляться с устаревшей системой, подверженной ошибкам, было скорее утомлением, чем реальным препятствием. Было относительно простое решение, было просто страшно внести изменения, образ мышления довольно укоренился.
Но, сообщив о всех проблемах и возможных решениях, мы в конце концов согласились исправить данные, и пока, похоже, они решили нашу проблему. Наши интеграционные тесты в настоящее время проходят последовательно, но мы также добавили протоколирование и продолжим его отслеживать.
Таким образом, я думаю, что для меня синтез обоих принципов заключается в том, что быстрый провал необходим для решения проблем. Но как только они выходят на поверхность, надежность означает обеспечение прозрачного пути для продолжения работы таким образом, который не ставит под угрозу систему. Я смог это предложить, и благодаря этому добился некоторой доброй воли с другой стороны и в конце исправил данные.
Опять же, спасибо всем, кто ответил. Я слишком новичок, чтобы оценивать комментарии, но я ценю все представленные перспективы.