unstale

npm / dexie

dexie

What changed in dexie 4, from its official release notes, upgrade guides and advisories. Also covers dexie-cloud-addon, dexie-export-import. Sources checked 2026-10-21.

1 breaking15 new APIs and options2 performance4 behavior and defaults23 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.1 on npm

dexie 445 changes

Breaking changes 1

  • Deleting a dotted key whose intermediate path is missing now does nothing instead of creating empty intermediate objects.

    4.4.3release notes

New APIs and options 15

  • Adds Facebook, LinkedIn, and Discord provider types.

    4.4.6release notes

  • The string offloading option is renamed from maxStringLength; the old name remains a backward-compatible alias.

    4.4.3release notes

  • Configure blobMode: 'lazy' to download blobs on-demand instead of eagerly after sync; the default is 'eager'.

    4.4.1release notes

  • An observable reports blob download progress.

    4.4.1release notes

  • Sets the string offloading threshold; the default is 32768 characters.

    4.4.1release notes

  • Adds a type for the /auth-providers endpoint response.

    4.3.0release notes

  • Configure whether social/OAuth authentication is enabled; it defaults to true, and setting it to false always uses the OTP flow.

    4.3.0release notes

  • Fetches available authentication providers from the server.

    4.3.0release notes

  • Login can specify an OAuth provider; without one, users see a provider selection dialog when providers are configured.

    4.3.0release notes

  • LoginHints accepts the Dexie Cloud authorization code from an OAuth callback.

    4.3.0release notes

  • Adds a type for OAuth provider metadata.

    4.3.0release notes

  • Set a custom OAuth callback redirect URI; it defaults to window.location.href for web SPAs.

    4.3.0release notes

  • LoginHints accepts an optional redirect path for the OAuth redirect URI.

    4.3.0release notes

  • Adds an experimental React hook for Suspense integration that suspends until data is available.

    4.3.0release notes

  • Adds an experimental React hook for Suspense integration.

    4.3.0release notes

Performance 2

  • Uses IndexedDB 3.0 getAll(options) for key range queries, reducing overhead for collection operations.

    4.4.1release notes

  • Dexie Cloud offloads long strings to blob storage during sync while retaining full strings in local IndexedDB and resolving them as regular strings on read.

    4.4.1release notes

Behavior and default changes 4

  • Anonymous users can download offloaded blobs; previously, they could not.

    4.4.2release notes

  • Blob and File objects are always offloaded regardless of size.

    4.4.1release notes

  • Dexie Cloud automatically offloads large binary data to cloud blob storage during sync; BlobRefs resolve to original types on first read.

    4.4.1release notes

  • The default login GUI adds provider selection and branded provider buttons when OAuth providers are available, with fallback to OTP when none are configured.

    4.3.0release notes

Fixes and other changes 23

  • Filtered chunked exports no longer produce invalid JSON when a later chunk contains no rows matching the active filter.

    4.4.6release notes

  • Tables new to a client are detected by comparing declared and persisted cloud schemas, marked for initial synchronization, and retain pending sync state until the server acknowledges completion.

    4.4.6release notes

  • Multiple updating-hook subscribers now reliably receive the record modifications object when using the minified production build.

    4.4.6release notes

  • Opening a database no longer fails when a primary key or index is named after an inherited Object property such as constructor, toString, or valueOf.

    4.4.5release notes

  • If the server rejects a locally unexpired refresh token, login falls back to the regular fetchTokens authentication path; OAuth redirect errors still propagate normally.

    4.4.5release notes

  • The TypeScript definition for Dexie.transaction() now includes the missing table4 parameter, aligning it with the other table parameters.

    4.4.4release notes

  • In cloned cache mode, query results are now deeply cloned on read, isolating them from in-place consumer mutations so subsequent live-queries can detect changes.

    4.4.4release notes

  • Blob writebacks now use BlobSavingQueue.saveBlobs() to open a Dexie read-write transaction in a fresh JS task, preventing PSD context loss after async fetch.

    4.4.3release notes

  • In immutable cache mode, sortBy() sorts on a copy rather than mutating a frozen array, avoiding a TypeError.

    4.4.3release notes

  • Applying a server-side $logins update now guards against empty changeSpec objects after key deletion, preventing an inline primary key from being overwritten with undefined.

    4.4.3release notes

  • Pending blobs are downloaded in chunks with a query limit, keeping memory usage bounded.

    4.4.3release notes

  • Blob fetch requests use cache: no-store to avoid browser caching of raw blob responses and double-storing them.

    4.4.3release notes

  • A request for a blob whose download has started but is not yet persisted reuses the existing download promise instead of starting another download.

    4.4.3release notes

  • Hot module replacement no longer breaks the Y.js awareness connection in development environments.

    4.4.2release notes

  • The primary key is stripped from changeSpecs in update mutations, preventing sync failures in certain edge cases.

    4.4.2release notes

  • Queries using anyOf(), each(), or ignore-case queries no longer fail on tables containing blobs, large binary data, or very long strings.

    4.4.2release notes

  • Calling this in a Service Worker context no longer crashes.

    4.4.2release notes

  • Logout preserves syncState, avoiding an unwanted loading spinner on re-login.

    4.4.2release notes

  • Server updates over websocket are no longer intermittently ignored.

    4.4.2release notes

  • Dexie.connections uses FinalizationRegistry, and Dexie enforces maxConnections.

    4.4.1release notes

  • Fixes rare circumstances where liveQuery could fail to emit values.

    4.4.1release notes

  • Avoids direct React.use access for React versions earlier than 19.

    4.4.1release notes

  • Fixes UTF-8 corruption for non-ASCII strings during import.

    4.4.1release notes