Estoy usando nodos de IA para generar texto para [publicar en mi LinkedIn, he probado la credencial usando la solicitud HTTP GET así que sé que funciona.
Al intentar crear la publicación para el texto generado por IA, constantemente recibo errores como:
400 - “{"status":400,"code":"ILLEGAL_ARGUMENT","message":"Request body could not be converted to data map"}”
Mensaje completo
422 - “{"message":"ERROR :: /## Audit Log Ingestion Lag\n\nImagine you’re trying to catch a thief who just left a store :: unrecognized field found but not allowed\nERROR :: /author :: field is required but not found and has no default value\nERROR :: /commentary :: field is required but not found and has no default value\nERROR :: /visibility :: field is required but not found and has no default value\nERROR :: /distribution :: field is required but not found and has no default value\nERROR :: /lifecycleState :: field is required but not found and has no default value\n","status":422}”
Por favor, comparte tu flujo de trabajo
No puedo copiar los nodos, parece que no copia el texto (Edge en Windows 11)
Los nodos de IA funcionan bien, es solo la publicación en LinkedIn mediante solicitud HTTP la que no publica
Comparte el resultado devuelto por el último nodo
422 - “{"message":"ERROR :: /## Audit Log Ingestion Lag\n\nImagine you’re trying to catch a thief who just left a store :: unrecognized field found but not allowed\nERROR :: /author :: field is required but not found and has no default value\nERROR :: /commentary :: field is required but not found and has no default value\nERROR :: /visibility :: field is required but not found and has no default value\nERROR :: /distribution :: field is required but not found and has no default value\nERROR :: /lifecycleState :: field is required but not found and has no default value\n","status":422}”
Información sobre tu configuración de n8n
versión de n8n: 2.30.0
Base de datos (predeterminada: SQLite): predeterminada
Configuración EXECUTIONS_PROCESS de n8n (predeterminada: own, main): predeterminada
Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio): Proxmox lxc
OK, he logrado resolver los problemas, era la publicación en la API de LinkedIn que requiere que se agreguen ciertos campos en el cuerpo de la publicación.
También descubrí que hay un límite de 4000 caracteres al publicar a través de la API.
Ambos errores apuntan a las mismas dos causas raíz, y son solucionables:
El error 400 “Request body could not be converted to data map” significa que el cuerpo JSON en sí es inválido — tu texto de IA se está inyectando sin procesar, por lo que sus comillas, saltos de línea y caracteres como : y # rompen el JSON. Solución: establece el cuerpo de la solicitud HTTP en modo JSON y envuelve el texto con JSON.stringify para que se escape, por ejemplo, el valor commentary se convierte en ={{ JSON.stringify($json.text) }} (elimina las comillas externas en la plantilla). Esto por sí solo elimina el error “converted to data map”.
El error 422 “field is required” (author, commentary, visibility, distribution, lifecycleState) significa que estás publicando en el endpoint más nuevo /rest/posts pero enviando un cuerpo parcial. Ese endpoint requiere TODOS estos campos. Un cuerpo mínimo funcional:
Y dos encabezados que la gente suele pasar por alto: LinkedIn-Version: 202401 (usa un YYYYMM actual) y X-Restli-Protocol-Version: 2.0.0. Sin el encabezado de versión, LinkedIn rechaza silenciosamente el esquema.
Un problema más específico del campo commentary en /rest/posts: utiliza el formato “Little Text” de LinkedIn, por lo que los caracteres literales (, ), 003c, 003e, @, #, * y algunos otros deben escaparse con una barra invertida o la solicitud 422s. Si tu texto de IA contiene encabezados markdown (##) o paréntesis, elimínalos o escápelos antes de enviar. Tu texto de ejemplo tenía ## y ::, lo que casi con certeza es lo que lo hizo fallar.
Si pegas la configuración exacta del nodo (URL del endpoint + qué campos envías) puedo señalar la pieza específica que falta.
Hemos examinado este problema y no podemos confirmar que se trate de un error. Por ahora hemos cerrado el ticket interno, pero si empieza a parecer un error, nuestro equipo de moderación lo marcará nuevamente.
También vale la pena señalar: el límite de 4000 caracteres se aplica al campo text. Si estás usando IA para generar contenido, agrega una verificación de longitud antes de enviar — de lo contrario, la API simplemente rechazará la solicitud sin avisar.