Ultimate

X_REPO_CLIENT_PINNED

Means

a repository pinned to its own client cannot join the open transaction

Typical cause

a repository built through postgresDriver({ client }) used inside a transaction that was opened on another client. Refused rather than resolved: the pinned client takes a different connection out of its pool, so the write commits immediately and survives the rollback while the read cannot see rows the transaction already wrote — both silently. A transaction opened on the pinned client (withTransaction(fn, { client }), driver.transactor()) is joined, As of 2026-10-02 — tx.origin says it is the same database

Fix

setDbClient(client) at boot and build the repository with no client: — postgresDriver() then resolves the open transaction through db() — or run this call outside withTransaction()

Listed under Entity and database

This page as markdown