Cycles being drained. How to understand what's behind it?

To save you some time:

I recommend calling initCap if you haven’t already. This will initialize the CAP event service. If you don’t do this your canister will trap when it attempts to report a transaction to CAP. Your canister will catch this error and try again, hundreds of times within a few seconds, and will continue this behavior until you either restart the canister or initialize the CAP service using the command I mentioned in the first sentence.