Don't call the listener under invalid condition
Don't resume if already resumed, also force caching
Wrong logic