balance is 0 but with automatic top up, my account expired by Koodo and all my un-used minutes and data usage are gone. I wonder how it'd happen? Isn't automatic top up will allow charge from my registered credit card no matter how much balance I have?
There are two things here, Oasis Huang, one if you add auto top up AFTER your base plan expires, you need to top up manually once to "trigger" the system into renewing.
Second, you said your account expired and your minutes/data are gone - when did you last use your phone? You have 90 days to renew your base plan after it expires, so if you can still log into self service and access your account, all you need to do is top up manually to reactivate your account.
After that, auto top up will make sure your account stays active from then on :)