Eu corri para este mesmo problema com HeidiSQL. O erro que você recebe é muito enigmático. Meu problema acabou sendo que a coluna de chave estrangeira e a coluna de referência não eram do mesmo tipo ou comprimento.
A coluna de chave estrangeira era
SMALLINT(5) UNSIGNED
e a coluna referenciada era INT(10) UNSIGNED
. Depois que fiz os dois do mesmo tipo exato, a criação da chave estrangeira funcionou perfeitamente.