The Bills signed Cain to a one-year contract Tuesday.
Cain attempted to catch onto the Eagles' 53-man roster during last year's training camp, but he was cut at the end of August and did not catch on with a practice squad. His last NFL action was in 2020, when he appeared in two regular-season games for the Steelers and played 10 snaps on offense across the two contests. The 2018 sixth-round pick is unlikely to make the Bills' final roster, but he could be invited to stick around on the practice squad if he's able to impress in training camp.