Hi Shruti,
CAN_Init and CAN_Deinit are using FreeRTOS API to create/destroy semaphores. This is the reason why the FreeRTOS flow will block into assert.
If CAN driver initialization and deinitialization are made outside of the ISR, then everything should work ok.
Best regards,
Rares