hyperledger/fabric · error
txid [%s]: unsuppored transaction. Transaction has already p
Error message
txid [%s]: unsuppored transaction. Transaction has already performed a paginated query. Writes are not allowed
What it means
Returned by checkPaginatedQueryPerformed when a write is attempted after the simulator already executed a paginated query. The pagination state would make the write's view inconsistent, so the simulator forbids writes post-pagination.
Source
Thrown at core/ledger/kvledger/txmgmt/txmgr/tx_simulator.go:260
func (s *txSimulator) checkPvtdataQueryPerformed() error {
if s.pvtdataQueriesPerformed {
return errors.Errorf("txid [%s]: unsuppored transaction. Transaction has already performed queries on pvt data. Writes are not allowed", s.txid)
}
return nil
}
func (s *txSimulator) checkBeforePaginatedQueries() error {
if s.writePerformed {
return errors.Errorf("txid [%s]: unsuppored transaction. Paginated queries are supported only in a read-only transaction", s.txid)
}
s.paginatedQueriesPerformed = true
return nil
}
func (s *txSimulator) checkPaginatedQueryPerformed() error {
if s.paginatedQueriesPerformed {
return errors.Errorf("txid [%s]: unsuppored transaction. Transaction has already performed a paginated query. Writes are not allowed", s.txid)
}
return nil
}
View on GitHub (pinned to 2736b63f8f)
Solutions
- Separate paginated queries and writes into different transactions
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/ledger/kvledger/txmgmt/txmgr/tx_simulator.go:260 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hyperledger/fabric@2736b63f8f (2026-09-04).
Data as JSON: /api/errors/db42a4b6826968a1.
Report an issue: GitHub.