Interceptor(s) are not called because tx is null. If afterTransactionCompletion is called when tx is null then we can imagine there is some good reason that it exists, in my very real case, I do care a lot that my interceptor been called.