agent's usage export parser returned empty seat counts, audit failed
Fixes usage export parsers that silently return empty seat counts by validating the parse against the raw file and fixing the over-strict filter that dropped the rows. Use when a parser returns empty with no error. Not for genuinely empty exports.
TL;DR
Empty output with no error means the parser silently dropped everything. Check that the raw export is non-empty, validate the parser's row count against it, find which filter dropped the rows, usually an over-strict status filter, and fix it.
agent's usage export parser returned empty seat counts, audit failedUse this when
- A usage parser returns zero counts with no error.
- The raw export file is non-empty.
- The audit reports zero with false confidence.
Not for this skill when
- The export is genuinely empty. That is a data problem.
- The parser errors. Read the error.
- The counts are wrong but non-zero. That is a logic problem.
Steps
- Check the raw export is non-empty. Verify: the file has data.
- Validate the parser's row count against the raw line count. Verify: you see the drop.
- Inspect which filter dropped the rows. Verify: the culprit filter is named.
- Fix the filter; status values and date formats are the usual suspects. Verify: rows survive.
- Re-run the parse. Verify: counts are non-empty and sane.
Variant phrasings
parser returned empty
The state-first phrasing.
seat counts zero
The symptom-first search.
empty audit results
The generic phrasing.
Compatibility: Any usage export parser in agent code.
Why it happens
Parsers that filter aggressively return empty instead of erroring. The audit then reports zero with false confidence, which is worse than failing loudly.
Edge cases / pitfalls
- The export genuinely having zero rows for the filter; distinguish from parser error by checking the raw file.
- Status values the vendor renamed; the filter matches nothing.
- Date-format mismatches silently excluding every row.
- The fix needing a loud failure on empty results going forward, so this never recurs silently.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_dTD7Oc3BDJAtKluvZFHM4Q