Parse CSV suddenly throwing error

We have “parse csv” modules running in multiple scenarios without issues.
Starting today, all of these scenarios started throwing the same error, always stemming from Parse CSV:

Invalid Opening Quote: a quote is found on field “col1” at line 1, value is “” (utf8 bom)

I found that changing the advanced setting “preserve quotes inside unquoted fields” helped - but as the formatting on our sources didn’t change, something must have changed within this module. I wonder if it’s an intended change, or a bug?

Hello @Dosteinv,

Have you got an example of the CSV when it worked and an example of the CSV that is causing the error?
Maybe post a blueprint demonstrating the issue?

Open a ticket here if you need to.

For sure, here’s a minimal blueprint that shows the error when using a CSV with BOM (<0xfeff>) in front.
It used to work as-is, but now requires the “preserve quotes” setting to not throw an error.

{
    "name": "Integration CSV",
    "flow": [
        {
            "id": 1,
            "module": "csv:ParseCSV",
            "version": 1,
            "parameters": {
                "colCount": null,
                "csvContainsHeaders": true,
                "delimiterType": "other",
                "relax": false,
                "delimiter": ","
            },
            "mapper": {
                "csv": "\t\"completed\",\"email\",\"role\",\"first\"\n\"2024-09-11 08:20:02\",\"qualite@example.fr\",\"SIGNER\",\"Lola\""
            },
            "metadata": {
                "designer": {
                    "x": 0,
                    "y": 0,
                    "messages": [
                        {
                            "category": "last",
                            "severity": "warning",
                            "message": "A transformer should not be the last module in the route."
                        }
                    ]
                },
                "restore": {
                    "parameters": {
                        "delimiterType": {
                            "label": "Other"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "colCount",
                        "type": "number",
                        "label": "Number of columns"
                    },
                    {
                        "name": "csvContainsHeaders",
                        "type": "boolean",
                        "label": "CSV contains headers",
                        "required": true
                    },
                    {
                        "name": "delimiterType",
                        "type": "select",
                        "label": "Delimiter",
                        "required": true,
                        "validate": {
                            "enum": [
                                ",",
                                "\t",
                                "other"
                            ]
                        }
                    },
                    {
                        "name": "relax",
                        "type": "boolean",
                        "label": "Preserve quotes inside unquoted field",
                        "required": true
                    },
                    {
                        "name": "delimiter",
                        "type": "text",
                        "label": "Delimiter character",
                        "validate": {
                            "max": 1,
                            "min": 1
                        },
                        "required": true
                    }
                ],
                "expect": [
                    {
                        "name": "csv",
                        "type": "text",
                        "label": "CSV",
                        "required": true
                    }
                ],
                "interface": [
                    {
                        "name": "col1",
                        "label": "\t\"completed\"",
                        "type": "text"
                    },
                    {
                        "name": "col2",
                        "label": "\"email\"",
                        "type": "text"
                    },
                    {
                        "name": "col3",
                        "label": "\"role\"",
                        "type": "text"
                    },
                    {
                        "name": "col4",
                        "label": "\"first\"",
                        "type": "text"
                    }
                ],
                "advanced": true
            }
        }
    ],
    "metadata": {
        "instant": false,
        "version": 1,
        "scenario": {
            "roundtrips": 1,
            "maxErrors": 3,
            "autoCommit": true,
            "autoCommitTriggerLast": true,
            "sequential": false,
            "slots": null,
            "confidential": false,
            "dataloss": false,
            "dlq": false,
            "freshVariables": false
        },
        "designer": {
            "orphans": []
        },
        "zone": "eu1.make.com"
    }
}

Also experiencing this same issue today. The same fix that @Donald_Mitchell mentioned also works for us.

Just to note, @Dosteinv figured it out!
In any case, you should open a ticket and let Make know because others may be affected as well and they may not know to come here.