> This page is for SDKs, 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.24.0

**`(feat):`** Retries now check `Retry-After` and `X-RateLimit-Reset` response headers before defaulting to exponential backoff. Added jitter to retry delays and capped maximum retry delay at 60 seconds.

## 1.23.11

**`(chore):`** Remove verbose debug logs for endpoint snippet processing and generation counts.

## 1.23.10

**`(fix):`** Fix union deserialization to catch Throwable instead of Exception. Previously, when deserializing union types, TypeError exceptions thrown during property assignment (e.g., assigning null to a non-nullable int property) were not caught, preventing the union from trying alternative types. This fix ensures that all errors during union type deserialization are caught, allowing proper fallthrough to the next union variant.

## 1.23.9

**`(fix):`** Fix JsonException "No constructor found" for empty object types. Previously, object types with no properties would not generate a constructor, causing JSON deserialization to fail. Now all JsonSerializableType subclasses generate a constructor with the expected `array $values` parameter signature.

## 1.23.8

**`(fix):`** Normalize UTC datetime serialization to use Z suffix instead of +00:00. The JsonSerializer now converts `2023-01-01T12:34:56+00:00` to `2023-01-01T12:34:56Z` for UTC times while preserving RFC3339 format for non-UTC timezones. Query parameters and headers now use JsonSerializer::serializeDateTime() for consistent datetime formatting. Test templates updated to match the new behavior.