You were using send_interval instead of apply_interval - which would work if you were handling the message in handle_info, but since you already have the MFA for mlapi_scavenger:scavenge/1 and mlapi_scavenger:reset_timer/1, I figured apply_interval works better.
Also, I refactored the code to simplify it slightly. (IMHO. YMMV)
You were using send_interval instead of apply_interval - which would work if you were handling the message in handle_info, but since you already have the MFA for mlapi_scavenger:scavenge/1 and mlapi_scavenger:reset_timer/1, I figured apply_interval works better.
Also, I refactored the code to simplify it slightly. (IMHO. YMMV)