Error de PostgreSQL: invalid input syntax for type

ERROR:  invalid input syntax for type integer: "abc"

Un valor textual tuvo que convertirse a uno tipado — integer, uuid, date, numeric — y no pudo parsearse. El mensaje entrecomilla el valor infractor, lo que suele identificar la fuente de inmediato: una fila de cabecera, una cadena vacía, o datos que nunca se validaron.

Qué significa este error

Esto se dispara allá donde el texto se encuentra con un tipo: casts explícitos ('abc'::int), parámetros ligados como texto, COPY leyendo un archivo, o conversiones implícitas en comparaciones. Fíjate en lo que no es: un problema de NULL (NULL se castea bien a cualquier cosa) — es un valor que existe y está malformado para el tipo de destino. La cadena vacía es el clásico: ''::int falla, porque vacío no es cero.

Causas comunes

Cómo diagnosticarlo

Cómo solucionarlo