Not an error. The column parses, normalizes, and produces a canonical field whose values are inconsistently typed — which breaks the maths downstream rather than at ingest.
Forge will not silently coerce these. A value it cannot read as a number stays as text, and downstream the read-time validators are what catch the consequence: a field that stops varying because every reading is now an unparsed string trips the stuck-sensor check after 20 identical readings.
One MCP endpoint serves every protocol adapter. 16,908 curated mappings, 366 canonical fields.
Other CSV ingest codes: empty_csv too_many_fields timestamp not recognized
Other protocols: Modbus OPC UA MQTT / Sparkplug B FANUC FOCAS EtherNet/IP PROFINET / S7 BACnet/IP J1939 (CAN) MTConnect ROS 2 (DDS) SNMP MAVLink HTTP / REST