I was recently working as a postdoctoral researcher in the United States. My supervisor was in close collaboration with another professor in Canada and therefore I expressed interest in joining the team in Canada with which both professors responded positively.
I should mention here that I am a foreigner to both countries. Therefore, I had to apply for a work permit to move to Canada from the US. In addition, I require a full-job to remain in valid status in the US.
I applied for a Canadian work permit based on the job offer as early as I could---which was only three weeks before the tentative start date on the official letter. The processing times estimate on the Canadian website for such a process were two weeks at the time. Happily, I resigned from my US job to finalize my move and get ready for the visa.
Unfortunately, the visa has not yet arrived for another 4 weeks and my US status will expire soon unless I'm hired immediately. Therefore, I applied for a local postdoc position and received another offer. My previous supervisor in the US would not be able to re-hire me immediately and the current offer is the best option so far.
My question is as follows: I understand the resigning was a mistake in the first place. However, Is it justifiable, professionally and ethically, to accept another position in the US? The position in Canada is ideal to me, but unfortunately, I have to commit to the US position for about a year if I sign.