We have some long running subscriptions to EventStore that sometimes may sit for days without any messages appearing. Recently, one of these appear to have terminated itself without error in production, leading to missing actions when events eventually do start to appear.
From the logs, I can see that EventStore has replied with reason Unsubscribed, suggesting that it is user initiated, but our service has definitely not requested that the subscription would be stopped:
12:05:26.000[esio-1-1] - c.g.m.e.t.h.OperationHandler - HandleTcpPackage SUBSCRIPTION DECISION EndOperation (SubscriptionDropped: Unsubscribed), Subscription VolatileSubscriptionOperation (e029e4ca-ba0a-4bfc-88dc-f6da809738df): com.github.msemys.esjc.subscription.VolatileSubscriptionOperation@78ede8dc, is subscribed: true, retry count: 0, created: 2016-10-09T09:53:26Z, last updated: 2016-10-09T09:53:26Z
The EventStore server logs show that nodes appear to be restarting and master election taking place at the time.
Running against EventStore 3.7.0 in a 3 node cluster, with the ESJC client in Java (https://github.com/msemys/esjc).
Are there any known circumstances under which the server would close a subscription with reason Unsubscribed, without it being the result of a user initiated subscription close? I’ve noticed that Unsubscribed is the default in the protobuf message, is it possible that a reason may not have been set?