This error indicates that you are trying to perform a registered operation during a doomed transaction. This can only happen in the BEGIN CATCH block if you ignore the XACT_STATE value :
There is an active transaction user in the current request, but an error occurred that caused the transaction to be classified as a non-local transaction. The request cannot complete a transaction or rollback to a savepoint; he can request only a complete rollback of the transaction. the request cannot record until it returns the transaction. A request can only perform read operations until it steers a transaction back. After the transaction has been rejected, the request can perform both reading and writing operations and can start a new transaction.
, , ( , ). , BEGIN TRY/BEGIN CATCH, . Erland Sommarskog Transact-SQL, BEGIN TRY/BEGIN CATCH.
, CATCH . , , , SQL . - , - (.. , ).