I've only experienced this with activerecord 2.3.11, so perhaps it's only recently been introduced.
The ol' rescue only catches StandardError and children issue. Unfortunately, the begin/rescue around active record transactions explicity catches Exception descendent classes, which means an exception not descending from StandardError (i.e. the ones thrown by mocha) will create an inconsistency between after_callback and activerecord.
I've only experienced this with activerecord 2.3.11, so perhaps it's only recently been introduced.
The ol' rescue only catches StandardError and children issue. Unfortunately, the begin/rescue around active record transactions explicity catches Exception descendent classes, which means an exception not descending from StandardError (i.e. the ones thrown by mocha) will create an inconsistency between after_callback and activerecord.