SSE connecting twice if session terminated at server

Same behaviour with later jQuery:

onConnect
POST http://127.0.0.1:8090/event-heartbeat?id=6NmVl8DLrQht8za7vWdX 404 (Subscription '6NmVl8DLrQht8za7vWdX' does not exist)
onReconnect {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
onConnect {userId: "-4", isAuthenticated: "false", displayName: "user4", channels: "0c328a71c14f4a208ebe7bc9672089ed", createdAt: "1591108312711", …}
onReconnect Event {isTrusted: true, type: "error", target: EventSource, currentTarget: EventSource, eventPhase: 0, …}
onConnect {userId: "-5", isAuthenticated: "false", displayName: "user5", channels: "0c328a71c14f4a208ebe7bc9672089ed", createdAt: "1591108321241", …}

I’ve stripped most of the code, the only difference is I’m adding an extra entry in the subscription on creation:

Plugins.Add(new ServerEventsFeature
{
OnCreated = (sub, req) => { sub.ServerArgs["lastHeartbeat"] = DateTime.Now.ToString(); }
});