Apologies, I don't have reproduction steps for this error, but I thought I should report it in case other people using active_type are also running into this problem.
After upgrading to Rails 7.1, I am sporadically seeing this error in production:
ActiveRecord::ConnectionAdapters::TransactionInstrumenter::InstrumentationNotStartedError: Called finish on a transaction that hasn't started
The error is triggered by calling save! on a subclass of ActiveType::Object. Stack trace:
gems/activerecord-7.1.1/lib/active_record/connection_adapters/abstract/transaction.rb, line 98, in finish
gems/activerecord-7.1.1/lib/active_record/connection_adapters/abstract/transaction.rb, line 402, in commit
gems/activerecord-7.1.1/lib/active_record/connection_adapters/abstract/transaction.rb, line 514, in block in commit_transaction
gems/activesupport-7.1.1/lib/active_support/concurrency/null_lock.rb, line 9, in synchronize
gems/activerecord-7.1.1/lib/active_record/connection_adapters/abstract/transaction.rb, line 503, in commit_transaction
gems/activerecord-7.1.1/lib/active_record/connection_adapters/abstract/transaction.rb, line 565, in block in within_new_transaction
gems/activesupport-7.1.1/lib/active_support/concurrency/null_lock.rb, line 9, in synchronize
gems/activerecord-7.1.1/lib/active_record/connection_adapters/abstract/transaction.rb, line 532, in within_new_transaction
gems/activerecord-7.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb, line 342, in transaction
gems/activerecord-7.1.1/lib/active_record/transactions.rb, line 361, in with_transaction_returning_status
gems/activerecord-7.1.1/lib/active_record/transactions.rb, line 313, in save!
gems/activerecord-7.1.1/lib/active_record/suppressor.rb, line 56, in save!
This error occurs within a sidekiq job, and only rarely, so it could be a threading/race condition issue.
Any thoughts on what might trigger the "Called finish on a transaction that hasn't started" error? If I discover more details I will add to this thread.
Apologies, I don't have reproduction steps for this error, but I thought I should report it in case other people using
active_type
are also running into this problem.After upgrading to Rails 7.1, I am sporadically seeing this error in production:
The error is triggered by calling
save!
on a subclass ofActiveType::Object
. Stack trace:This error occurs within a sidekiq job, and only rarely, so it could be a threading/race condition issue.
Any thoughts on what might trigger the "Called finish on a transaction that hasn't started" error? If I discover more details I will add to this thread.