Sync gateway starts throwing 401 unauthorized errors after running for a few hours

Looking for some guidance here. See logs below. The sync gateway works for a while but then starts throwing 401 unauthorized errors.

Logs:
2017-11-14T09:51:14.037Z WARNING: changeCache: Error unmarshaling doc “_sync:user:”: unexpected end of JSON input – db.(*changeCache).processPrincipalDoc() at change_cache.go:530
2017-11-14T09:51:18.972Z WARNING: changeCache: Error unmarshaling doc “_sync:user:user1”: unexpected end of JSON input – db.(*changeCache).processPrincipalDoc() at change_cache.go:530
2017-11-14T09:51:18.973Z WARNING: Error reloading user “user1”: User not found during reload – db.(*Database).checkForUserUpdates() at changes.go:310
2017-11-14T09:51:18.973Z HTTP+: #145: --> WebSocket closed
2017-11-14T09:51:18.973Z WARNING: Error reloading user “user1”: User not found during reload – db.(*Database).checkForUserUpdates() at changes.go:310
2017-11-14T09:51:18.973Z HTTP+: #143: --> WebSocket closed
2017-11-14T09:51:22.344Z HTTP auth failed for username="user1"
2017-11-14T09:51:22.344Z HTTP: #177: GET /grocery_sample/_changes?feed=websocket
2017-11-14T09:51:22.344Z HTTP: #177: --> 401 Invalid login (0.3 ms)
2017-11-14T10:00:33.928Z HTTP auth failed for username="user1"
2017-11-14T10:00:33.928Z HTTP: #178: GET /grocery_sample/
2017-11-14T10:00:33.928Z HTTP: #178: --> 401 Invalid login (0.2 ms)
2017-11-14T10:00:37.300Z HTTP: #179: GET /grocery_sample/-OPaiOOBq1uMNX3wmC2GFCR

Gateway config:
{
“log”: [“HTTP+”],
“adminInterface”: “0.0.0.0:4985”,
“interface”: “0.0.0.0:4984”,
“databases”: {
“grocery_sample”: {
“server”: “http://localhost:8091”,
“bucket”: “grocery_sample”,
“username”: “user1”,
“password”: “",
“users”: {
“GUEST”: {“disabled”: true, “admin_channels”: [""] },
“user1”: {“password”: “", “admin_channels”: ["
"]}
},
“sync”: function(doc, oldDoc) { channel(doc.channels); }
}
}
}

Restarting sync gateway helps but after a few hours same issue encountered.

FYI - I tried to change the password text to stars (*) and the post removed them it seems.