From aefdd6e00413d3cc9d2054a477ec99b8c226b050 Mon Sep 17 00:00:00 2001
From: rithu john <rithujohn191@gmail.com>
Date: Fri, 28 Apr 2017 11:54:39 -0700
Subject: [PATCH] server/api: return empty list of refresh tokens if user does
 not have any

---
 server/api.go | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/server/api.go b/server/api.go
index 738966a2..ae1fe949 100644
--- a/server/api.go
+++ b/server/api.go
@@ -215,13 +215,20 @@ func (d dexAPI) ListRefresh(ctx context.Context, req *api.ListRefreshReq) (*api.
 		return nil, err
 	}
 
+	var refreshTokenRefs []*api.RefreshTokenRef
 	offlineSessions, err := d.s.GetOfflineSessions(id.UserId, id.ConnId)
 	if err != nil {
-		d.logger.Errorf("api: failed to list refresh tokens: %v", err)
+		if err == storage.ErrNotFound {
+			// This means that this user-client pair does not have a refresh token yet.
+			// An empty list should be returned instead of an error.
+			return &api.ListRefreshResp{
+				RefreshTokens: refreshTokenRefs,
+			}, nil
+		}
+		d.logger.Errorf("api: failed to list refresh tokens %t here : %v", err == storage.ErrNotFound, err)
 		return nil, err
 	}
 
-	var refreshTokenRefs []*api.RefreshTokenRef
 	for _, session := range offlineSessions.Refresh {
 		r := api.RefreshTokenRef{
 			Id:        session.ID,
-- 
GitLab