J'ai rencontré le même problème avec HeidiSQL. L'erreur que vous recevez est très cryptique. Mon problème a fini par être que la colonne de clé étrangère et la colonne de référence n'étaient pas du même type ou de la même longueur.
La colonne de clé étrangère était SMALLINT(5) UNSIGNED
et la colonne référencée était INT(10) UNSIGNED
. Une fois que je leur ai donné exactement le même type, la création de la clé étrangère a parfaitement fonctionné.