> This page is for CLI 参考.

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 5.171.2

**`(chore):`** Internal cleanup: shared helpers for ENOENT checks, http(s) URL checks, delays,
`asyncPool` and `convertNumberToSnakeCase` now live in `core-utils` instead of being
copied across packages. No behavior change.

## 5.171.1

**`(fix):`** The `custom-domain` Vercel check now recognizes apex domains on all of Vercel's
IPv4 networks (per ARIN), not just a subset.

## 5.171.0

**`(feat):`** `fern generate --docs` (including `--preview`) now checks the DNS of each configured
`custom-domain`. If a domain still points to Vercel instead of `cname.ferndocs.com`
(or your own reverse proxy), the CLI prints a warning with migration steps. Starting
December 1, 2026 this becomes an error and publishing fails until the DNS is switched.

## 5.170.8

**`(fix):`** The dynamic IR now reports `hasResponseBody: false` for endpoints that have no response body
(previously every endpoint was reported as `response: json`). This lets dynamic snippet generators
distinguish `(response, error)` methods from `error`-only methods (e.g. Go deletes).

## 5.170.7

**`(fix):`** `error-responses` configured on `api.settings` (shared by every spec of the API) now declares
the error body type and the status-code errors once in the root package instead of duplicating
them under each namespaced spec. SDKs expose one `BadRequestError`, `NotFoundError`, ... that
every namespace throws. `error-responses` set on an individual spec is unchanged.

## 5.170.6

**`(fix):`** Fix `fern generate --docs` failing with `ENOENT` on Markdown images whose quoted title contains
an unbalanced `)`, e.g. `![Diagram](./diagram.png "Flow: 1) Input, 2) Output")`. The scanner
ended the destination at the first `)` inside the title and tried to upload a file named
`diagram.png "Flow: 1`. Page links with such titles are resolved the same way.