segmentio / Analytics-CSharp

The hassle-free way to add Segment analytics to your C# written app (.Net/Xamarin/Unity).
MIT License
21 stars 8 forks source link

Analytics Startup logs an error after waking up from appPool time out #90

Closed Chiel75 closed 8 months ago

Chiel75 commented 9 months ago

We use the Analyics.CSharp in an ASP.Net project. After the appPool times out, the memory is cleared. When the website is waking up again because of user activity, the Analytics StartUp() is called again (as it should because we registrered the Analytics as a singleton). After waking up, in the StartUp() is tried to: await Store.Provide(System.DefaultState(Configuration, Storage)); In the DefaultState method the cache is read from the storage (in this case the lost inmemorystream because of the appPool) and returns an empty string variable cache. After that, the empty cache string will generate an exception that is being logged.

Expected behavior No uneccesary exception should be thrown. Maybe an info message the the state could not be found from the cache.

Platform (please complete the following information):

wenxi-zeng commented 9 months ago

@Chiel75 just want o clarify, are you referring to this line that logs as an error should instead log as info?

Chiel75 commented 9 months ago

Hi @wenxi-zeng No, but if this line results in an empty string, there is no need to try and deserialize it into a settings object and let it throw an exception.

wenxi-zeng commented 9 months ago

@Chiel75 sorry for the late response. after discussion, our team also feel we should log the empty string case as an info, but keep the deserialization case as an exception. we will push an update for this in the next release.

wenxi-zeng commented 8 months ago

fixed in 2.3.4