> This page is for SDK, version Legacy.
> For other versions, use one of these documentation indexes:
> - Current (default): https://buildwithfern.com/learn/sdks/current/llms.txt
> - Legacy: https://buildwithfern.com/learn/sdks/legacy/llms.txt

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

## 1.39.0

**`(fix):`** Pagination now works when the next cursor, the items, or the has-next-page flag is nested inside the
response (e.g. `$response.pagination.nextToken`). The pager used to read only the last field name
from the top-level response (`response.next_token`), which raised `NoMethodError`. It now follows
the full path (`response.pagination.next_token`).

**`(feat):`** Generated wire tests now cover every example of an endpoint instead of only the first, including
autogenerated error examples (one per error) for endpoints without a user-specified error example.
Error tests assert the typed error raised for the status code (`assert_raises`) along with its status
code and body. Each test's `X-Test-Id` header selects a dedicated WireMock mapping that serves that
example's response, success mappings use the endpoint's declared status code, and the test client
disables retries. Set `wireTestsFallbackToAutoGeneratedErrorExamples: false` to leave out the
autogenerated error examples.

## 1.38.2

**`(fix):`** Models no longer keep an unknown JSON key as an extra field when it matches a declared field
case-insensitively (e.g. `VALUE` next to `value`). Previously the extra key was re-emitted after the
declared field, so a case-insensitive, last-wins JSON decoder downstream (such as Go's `encoding/json`)
read the extra key's value instead of the declared field's. Non-colliding unknown keys are still
preserved and re-emitted. XML-encoded models are unchanged, since XML attribute names are case-sensitive.