Date: 2026-09-05 to 2026-09-06
Affected: grants-gov-monitor
Duration: ~21 hours from publication to fixed build live
The grants monitor launched on 5 September. Its run log advertises the agency
codes present in your results - copied straight from the official Grants.gov
API's own facet list, which reports rollup codes like USDA or
HHS. What we missed: the API's filter only accepts leaf
codes like USDA-NIFA. Following our own log's advice produced a
profile that silently matched zero opportunities.
A watch profile filtered by a top-level agency code returned an empty baseline instead of the opportunities it should have watched. No wrong data was delivered and baseline rows that did not exist were not charged - the failure mode was silence, which for a monitor is still a real failure.
Two of them. The API's facet vocabulary differs from its filter vocabulary, and our launch checks exercised keyword profiles more thoroughly than agency-filtered ones. A second, self-inflicted issue delayed the fix by one build: a deploy shipped a stale bundle under a fresh version number, so the first "fixed" build still ran the old code. Caught because the fix's log line was missing in a verification run.
The monitor now expands rollup codes automatically: a one-row probe fetches
the facet tree and USDA becomes its nine filterable
sub-agencies before the search runs. Leaf codes pass through untouched, and
watch profiles stay keyed on your raw input, so the expansion never
re-baselines an existing watch. Verified live: USDA now finds
34 opportunities.
Deploys now rebuild the bundle before every push as a hard rule, and any behaviour fix is verified by reading its log line in a real platform run, not by trusting the version number. The rollup-expansion path carries its own unit tests.
Questions about this incident? lowlanddata@gmail.com - reports get read the same day.