The transaction model uses AutoCAD's undo mechanism and AcDbObject::cancel() in implementing AcTransactionManager::abortTransaction(). This requires that you do not include any operation that uses AutoCAD's subcommand undo mechanism in a transaction. This will confuse AcDbTransactionManager::abortTransaction() and might produce unexpected results. Examples of operations that use the subcommand undo mechanism are the PEDIT and SPLINEDIT commands.