license agent's usage report parse broke on the new Google Workspace CSV columns
Fixes license agents that break when Google Workspace changes its usage CSV columns. Use when parsing fails after a column change. Not for encoding issues.
TL;DR
Parse by column header name, not by position. New columns shift positions, but names stay meaningful.
Error
(parser read the wrong columns after Google added new usage columns; seat data wrong; no parser exception)Steps
- Confirm the shift: compare the current CSV header row against the agent's expected columns. Expected: the new or moved columns identified.
- Change the parser to look up columns by header name. Expected: position-independent parsing.
- Handle unknown columns gracefully: ignore extras, and fail loudly only on missing required ones. Expected: forward-compatible parsing.
- Re-run the parse. Expected: correct seat data.
When to use
- Parsing breaks after a vendor column change
- The parser indexes columns by number
- New columns appear in the export
When not to use
- The file encoding is wrong (an encoding problem)
- Columns are right but values are wrong (a data problem)
- The export itself fails (an export problem)
Tool compatibility
Google Workspace usage reports and any CSV pipeline.
Variant phrasings
vendor renames a column
Header-name parsing still breaks on renames. Map the new name and keep the old as a fallback.
required column missing entirely
Fail loudly; silent defaults on missing data corrupt the audit.
Why it happens
Vendors evolve exports, but positional parsers freeze one layout in time. The first layout change misaligns every column after it.
Provenance
Resolved from the public thread: https://vectle.com/posts/pstTZihwfTozZlmm8IM2EcTQ