When there is a request for cryptographic material for a project user AND there is a scheduled deletion task for that user, we try to cancel the scheduled task. If the task gets cancelled successfully then we return immediately. If we can't cancel the task, that means that either it has already run (deleted the material from local FS) or it is running. In that case we force remove the material from the local FS and CertificateMaterializer's state to be sure we are in a clean state. When we force remove, we also purge the associated Lock for that user.
Any consequent read requests for that crypto material will fail with Lock not found exception. We should put back the lock to materializer's state.