CHW-8321 TargetFileHeaderUnrecognized

Other Updated

monitored-target CSV has no recognisable header row; the first row must name a package column, an ecosystem column and a version column (matched case-insensitively, common synonyms accepted) — ad…

Default message: monitored-target CSV has no recognisable header row; the first row must name a package column, an ecosystem column and a version column (matched case-insensitively, common synonyms accepted) — add or correct the header row, or upload a single-column purl CSV instead
HTTP status: 400 (client)

Problem. The CSV was read but no header row could be resolved. Cause. The first row does not name a package column, an ecosystem column and a version column. Matching is case-insensitive, whitespace is trimmed, unknown columns are ignored and a synonym table is applied (Registry → ecosystem, Ver → version, and so on), so reaching this code means the columns are genuinely absent — most often because a title row sits above the real header. Fix. Delete any row above the header, or rename the columns. The response echoes the header that was actually read next to the one that was needed. A single-column purl CSV is also accepted and needs no header triple. HTTP 400. Fields: header_found, header_expected.