> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.cloudquant.com/llms.txt
> Use this file to discover all available pages before exploring further.

# What's New in Liberator 2.1.1

> Patch-release notes for CloudQuant Data Liberator 2.1.1 — reliability under heavy SQL-source load, configurable branding, improved error messages, PCAP FIX delegate

# What's new in Liberator 2.1.1

Liberator 2.1.1 is a **patch release** on top of [2.1](/whats-new/liberator-2.1).

The headline change is a reliability fix that surfaced under sustained SQL data-source load. The remainder of the release is customer-driven polish: per-organization branding controls, friendlier error messages, and a new **PCAP FIX delegate** for low-latency tick consumers.

## Highlights

<CardGroup cols={2}>
  <Card title="Reliability under heavy SQL-source load" icon="bug" href="#reliability-improvements">
    A blocking call in the data-cache tier could stall the platform under sustained SQL-source ingestion. Fix moves the call off the request-handling path.
  </Card>

  <Card title="Configurable branding" icon="palette" href="#configurable-branding">
    The Liberator UI nav-bar logo and login-page logo can now be customized per organization, so your own branding appears in front of your users.
  </Card>

  <Card title="PCAP FIX Data delegate" icon="bolt" href="#pcap-fix-data-delegate">
    New delegate path for consuming FIX-encoded tick data captured from PCAP, alongside the existing Liberator delegate types.
  </Card>

  <Card title="Friendlier error messages" icon="message" href="#improved-error-messages">
    Liberator error responses now surface root-cause hints rather than a raw exception chain.
  </Card>
</CardGroup>

## Reliability improvements

* **Stall under sustained SQL-source load** — under sustained ingestion against a SQL-backed datasource, a blocking call in the data-cache tier could occupy the request-handling path and cause the platform to go unresponsive for tens of seconds at a time. The fix moves the blocking call onto a background worker so request handling stays responsive while the SQL backend is busy.
* **Mapping-data fetch resilience** — fixed a regression where mapping-data fetches could error with *"No mapping data returned for ..."* even when the upstream data was present. The fetch retries now distinguish between transient transport errors (which retry) and structurally empty responses (which don't).
* **Force-regen no longer silently returns 0 rows** — the Python client's `force_regen=True` path could return 0 rows when an underlying data-cache regeneration failed silently. Regenerations now surface failures as exceptions rather than returning an empty result.

## Configurable branding

Per-organization branding is now supported across the Liberator UI:

* **Login-page logo**
* **Liberator UI nav-bar logo**

Both default to the CloudQuant logo unless your organization has requested a custom configuration. Contact your CloudQuant account team to set up custom branding for your tenant.

## SSO for the Liberator UI

The enterprise SSO integration introduced in 2.1 is now wired into the **Liberator UI** login flow as well. Federated users see a single "Sign in" button on the login page; clicking it bypasses the username/password prompt and authenticates via the corporate SSO session if one is already active in the browser.

## PCAP FIX data delegate

Liberator now ships a **PCAP FIX delegate**, a new delegate type that ingests FIX-protocol messages from PCAP captures, decoded and presented to the standard Liberator query surface. This is intended for low-latency tick consumers that capture exchange feeds at the wire level and want to query them through the same API as their historical datasets.

## Improved error messages

Liberator's error responses across the Python client, REST API, and Liberator UI have been re-paved so that:

* The *root* cause is reported first, with the call-site trace as supplementary context (previously the call-site trace was first, burying the actual cause).
* Common configuration mistakes (missing entitlement, malformed date parameter, unknown dataset) get plain-English explanations instead of a raw exception class name.
* Network-transport errors are distinguishable from server-side errors in the response shape, so client libraries can apply different retry behavior to each.
