mongodb/mongoid · error · Mongoid::Errors::InvalidTransactionNesting
A transaction was started while another transaction was bein
Error message
A transaction was started while another transaction was being used on this client.
What it means
Error "A transaction was started while another transaction was being used on this client." thrown in mongodb/mongoid.
Source
Thrown at lib/mongoid/clients/sessions.rb:92
#
# @raise [ Mongoid::Errors::InvalidTransactionNesting ] If the transaction is
# opened on a client that already has an open transaction.
# @raise [ Mongoid::Errors::TransactionsNotSupported ] If MongoDB deployment
# the client is connected to does not support transactions.
# @raise [ Mongoid::Errors::TransactionError ] If there is an error raised
# by MongoDB deployment or MongoDB driver.
#
# @yield Provided block will be executed inside a transaction.
def transaction(options = {}, session_options: {}, &block)
with_session(session_options) do |session|
session.with_transaction(options, &block).tap { run_commit_callbacks(session) }
rescue *transactions_not_supported_exceptions
raise Mongoid::Errors::TransactionsNotSupported
rescue Mongoid::Errors::Rollback
run_abort_callbacks(session)
rescue Mongoid::Errors::InvalidSessionNesting
# Session should be ended here.
raise Mongoid::Errors::InvalidTransactionNesting.new
rescue Mongo::Error::InvalidSession, Mongo::Error::InvalidTransactionOperation => e
run_abort_callbacks(session)
raise Mongoid::Errors::TransactionError.new(e)
rescue StandardError => e
run_abort_callbacks(session)
raise e
end
end
# Sets up a callback is called after a commit of a transaction.
# The callback is called only if the document is created, updated, or destroyed
# in the transaction.
#
# See +ActiveSupport::Callbacks::ClassMethods::set_callback+ for more
# information about method parameters and possible options.
def after_commit(*args, &block)
set_options_for_callbacks!(args)
set_callback(:commit, :after, *args, &block)View on GitHub (pinned to 0da0e23d71)
When it happens
Trigger: Thrown at lib/mongoid/clients/sessions.rb:92 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of mongodb/mongoid@0da0e23d71 (2026-08-23).
Data as JSON: /api/errors/1bbcf946a5446500.
Report an issue: GitHub.