{"record":{"id":"48146713fb7c7bbb","repo":"Kong/insomnia","slug":"csv-file-must-contain-at-least-two-rows-with-first","errorCode":null,"errorMessage":"CSV file must contain at least two rows with first row as variable names","messagePattern":"CSV file must contain at least two rows with first row as variable names","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/insomnia-inso/src/cli.ts","lineNumber":248,"sourceCode":"    }\n  } else if (fileType === 'csv') {\n    // Replace CRLF (Windows line break) and CR (Mac link break) with \\n, then split into csv arrays\n    const csvRows = content\n      .replace(/\\r\\n|\\r/g, '\\n')\n      .split('\\n')\n      .map(row => row.split(','));\n    // at least 2 rows required for csv\n    if (csvRows.length > 1) {\n      const csvHeaders = csvRows[0];\n      const csvContentRows = csvRows.slice(1);\n      return csvContentRows.map(contentRow =>\n        csvHeaders.reduce((acc: Record<string, any>, cur, idx) => {\n          acc[cur] = contentRow[idx] ?? '';\n          return acc;\n        }, {}),\n      );\n    }\n    throw new Error('CSV file must contain at least two rows with first row as variable names');\n  }\n  throw new Error(`Uploaded file is unsupported ${fileType}`);\n};\n\nconst transformIterationDataToEnvironmentList = (list: Record<string, string>[]): UserUploadEnvironment[] => {\n  return list?.map(data => {\n    const orderedJson = orderedJSON.parse<Record<string, any>>(\n      JSON.stringify(data || []),\n      JSON_ORDER_PREFIX,\n      JSON_ORDER_SEPARATOR,\n    );\n    return {\n      name: 'User Upload',\n      data: orderedJson.object,\n      dataPropertyOrder: orderedJson.map || null,\n    };\n  });\n};","sourceCodeStart":230,"sourceCodeEnd":266,"githubUrl":"https://github.com/Kong/insomnia/blob/d9bb2b0142600f21309832daea3317942d285984/packages/insomnia-inso/src/cli.ts#L230-L266","documentation":"Thrown when a CSV iteration-data file has fewer than two rows after normalizing line breaks. The first row supplies variable names and subsequent rows supply values, so a single-row (header-only) or empty CSV fails this minimum-shape validation in getListFromFileOrUrl.","triggerScenarios":"Thrown at packages/insomnia-inso/src/cli.ts:248 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add a header row of variable names as the first line","Add at least one data row beneath the header","Ensure the file uses real line breaks so rows are split correctly"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"d9bb2b0142600f21309832daea3317942d285984","analyzedAt":"2026-08-26T18:04:05.187Z","contentChangedAt":"2026-08-26T18:04:05.187Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}