Es difícil dar un ejemplo reproducible, resumo aquí los componentes principales:
Tenemos un sistema front-end/back-end en un servidor ubuntu 18.04. El lado del cliente es una plataforma web donde los usuarios pueden crear un proyecto con características (como nombre, fecha...). El front-end está codificado en javascript, con un mongoDB detrás y se comunica con una API de matraz. El enlace web es administrado por un proxy web dedicado.
Nos enfrentamos a un comportamiento muy desconcertante que no entendemos después de días de depuración:
El front-end envía un parámetro de cadena codificado en URL con formulario www X a la API. Este parámetro es opcional y puede estar vacío.
Verificamos que este parámetro esté en el cuerpo de la solicitud
let X = req.body.X? req.body.X : "";Si se establece el parámetro, las solicitudes se realizan correctamente. Sin embargo, si se omite el parámetro, ocurre un comportamiento extraño en la API:
Finalmente encontramos la razón por la que falló. Lo documento aquí para el próximo: La versión de desarrollo usó la biblioteca 'got' para la solicitud http. Por el motivo que sea (todavía estamos investigando y completaré la respuesta una vez que encontremos más), la solicitud con una cadena vacía falló para 'obtuve'. Cambiamos a la biblioteca 'axios' y todo salió bien.