One of the more sleazy and obnoxious things the Canada Revenue Agency (CRA) will do is to try to tax a young, non-retired person’s US retirement account, such as a ROTH IRA.
Taking a page out of Kafka’s book, the US-Canada tax treaty will only keep the Canada Revenue Agency (CRA) out of your Roth IRA if you file the proper treaty election in a timely fashion. If you are a single day late in telling the CRA that you don’t actually want your retirement money to be taxed then they can tax your ROTH IRA for as long as you remain in Canada. Furthermore, if you make the mistake of contributing to your ROTH IRA while you’re a resident of Canada then they can also tax your retirement plan.
Detailed instructions for taking the treaty election may be found at CRA Income Tax Technical News #43.
This issue is also discussed on this page from BDO Canada.
For reference, here is a copy of the letter I sent to the CRA to take the treaty election.
Disclaimer: I’m not a tax professional, just an academic who wasted too much time dealing with the US-Canada tax system.