---
summary: "Field-test bug fixes: error contracts, catalog handling, survey metadata, and formatting across BLS tools."
breaking: false
security: false
---

# 0.1.6 — 2026-05-23

## Fixed

- **`bls_search_series`** — throws `catalog_unavailable` when LABSTAT download fails instead of returning empty results ([#8](https://github.com/cyanheads/bls-mcp-server/issues/8))
- **`bls_list_surveys`** — LN survey `allowsNetChange`/`allowsPercentChange` corrected to `true` ([#9](https://github.com/cyanheads/bls-mcp-server/issues/9))
- **`bls_list_surveys`** — SA survey moved from `prices` to `employment` category ([#10](https://github.com/cyanheads/bls-mcp-server/issues/10))
- **`bls_get_series`** — empty calculation columns omitted from formatted output when calculations not requested ([#11](https://github.com/cyanheads/bls-mcp-server/issues/11))
- **`bls_get_latest`** — error contracts (`series_not_found`, `quota_exceeded`, `series_locked`) now reachable via `ctx.fail()` ([#12](https://github.com/cyanheads/bls-mcp-server/issues/12))
- **`bls_get_series`** — `no_data_for_period` recovery hint added via `ctx.recoveryFor()` ([#13](https://github.com/cyanheads/bls-mcp-server/issues/13))
- **`bls_get_series`** — zero-observation bogus SeriesID message now includes recovery pointer ([#14](https://github.com/cyanheads/bls-mcp-server/issues/14))
- **`bls_get_series`** — year range >20 rejected with split suggestion before API call ([#16](https://github.com/cyanheads/bls-mcp-server/issues/16))
- **`bls_get_latest`** — format includes series title via `catalog=true` ([#17](https://github.com/cyanheads/bls-mcp-server/issues/17))
- **`bls_search_series`** — whitespace-only query rejected via trim/refine ([#18](https://github.com/cyanheads/bls-mcp-server/issues/18))
- **`bls_search_series`** — zero-results message includes catalog size for disambiguation ([#19](https://github.com/cyanheads/bls-mcp-server/issues/19))
