Cannot recover EoIP until I disable keepalive

We’ve got several EoIP tunnels running, and sometimes they stop working for no known reason.
Once this happens the only way to bring them up again is to disable keepalive in one end (or both) of the tunnel .

Disabling and reenabling the whole tunnel doesn’t work either, only keepalive works.

Sometimes we can reenable keepalive after that, others it is not possible (reenabling keepalive keeps the tunnel down again).

It is very annoying because keepalive is supposed to be a failsafe measure.