Just throwing this into the mix of possible causes, I ran into this when the referencing table column had the same “type” but did not have the same signing.
In my case, the referenced table colum was TINYINT UNSIGNED and my referencing table column was TINYINT SIGNED. Aligning both columns solved the issue.