Do you have anonymous users enabled? If so, everytime you navigate to the app, or restart the app, a new $currentUser is created.
When does this microflow run? After login? Some other time?
Seems to me an issue with the user not having access to the settingsSingleton entity or when you create the object in the settingsSingleton the association to the user is not set.
I am setting as shown below
Still its not working.
After checking database entries I realized its creating new user entry every time I stop the server and start it again. How can I avoid it?
It looks like your Action doesn't have a commit so it isn't stored in the database? After every sign in a new object is created..