diff --git a/api/category.go b/api/category.go
index 86766c91d411b7b5c6689b3248d757b7c4567e42..5a578652d0ac79f4adf7202651f7fab1e8d366dc 100644
--- a/api/category.go
+++ b/api/category.go
@@ -36,7 +36,7 @@ func (c *Controller) CreateCategory(w http.ResponseWriter, r *http.Request) {
 
 	err = c.store.CreateCategory(category)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to create this category"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -67,7 +67,7 @@ func (c *Controller) UpdateCategory(w http.ResponseWriter, r *http.Request) {
 
 	err = c.store.UpdateCategory(category)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to update this category"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -79,7 +79,7 @@ func (c *Controller) GetCategories(w http.ResponseWriter, r *http.Request) {
 	ctx := context.New(r)
 	categories, err := c.store.Categories(ctx.UserID())
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch categories"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -102,7 +102,7 @@ func (c *Controller) RemoveCategory(w http.ResponseWriter, r *http.Request) {
 	}
 
 	if err := c.store.RemoveCategory(userID, categoryID); err != nil {
-		json.ServerError(w, errors.New("Unable to remove this category"))
+		json.ServerError(w, err)
 		return
 	}
 
diff --git a/api/entry.go b/api/entry.go
index cb9c0435381cca6ac34aa943dedd3a100f5338f0..37917c785bb520629caf37ec3cb6d3ff79eaa571 100644
--- a/api/entry.go
+++ b/api/entry.go
@@ -39,7 +39,7 @@ func (c *Controller) GetFeedEntry(w http.ResponseWriter, r *http.Request) {
 
 	entry, err := builder.GetEntry()
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch this entry from the database"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -64,7 +64,7 @@ func (c *Controller) GetEntry(w http.ResponseWriter, r *http.Request) {
 
 	entry, err := builder.GetEntry()
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch this entry from the database"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -122,13 +122,13 @@ func (c *Controller) GetFeedEntries(w http.ResponseWriter, r *http.Request) {
 
 	entries, err := builder.GetEntries()
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch the list of entries"))
+		json.ServerError(w, err)
 		return
 	}
 
 	count, err := builder.CountEntries()
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to count the number of entries"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -174,13 +174,13 @@ func (c *Controller) GetEntries(w http.ResponseWriter, r *http.Request) {
 
 	entries, err := builder.GetEntries()
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch the list of entries"))
+		json.ServerError(w, err)
 		return
 	}
 
 	count, err := builder.CountEntries()
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to count the number of entries"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -201,7 +201,7 @@ func (c *Controller) SetEntryStatus(w http.ResponseWriter, r *http.Request) {
 	}
 
 	if err := c.store.SetEntriesStatus(context.New(r).UserID(), entryIDs, status); err != nil {
-		json.ServerError(w, errors.New("Unable to change entries status"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -217,7 +217,7 @@ func (c *Controller) ToggleBookmark(w http.ResponseWriter, r *http.Request) {
 	}
 
 	if err := c.store.ToggleBookmark(context.New(r).UserID(), entryID); err != nil {
-		json.ServerError(w, errors.New("Unable to toggle bookmark value"))
+		json.ServerError(w, err)
 		return
 	}
 
diff --git a/api/feed.go b/api/feed.go
index 047400521fdd8b5b998763b0a2cdf5aa8c68c4d1..a295451b6568866c36c5c3f7115e9dc9febf7d62 100644
--- a/api/feed.go
+++ b/api/feed.go
@@ -53,7 +53,7 @@ func (c *Controller) CreateFeed(w http.ResponseWriter, r *http.Request) {
 		feedInfo.Password,
 	)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to create this feed"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -82,7 +82,7 @@ func (c *Controller) RefreshFeed(w http.ResponseWriter, r *http.Request) {
 
 	err = c.feedHandler.RefreshFeed(userID, feedID)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to refresh this feed"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -125,13 +125,13 @@ func (c *Controller) UpdateFeed(w http.ResponseWriter, r *http.Request) {
 	}
 
 	if err := c.store.UpdateFeed(originalFeed); err != nil {
-		json.ServerError(w, errors.New("Unable to update this feed"))
+		json.ServerError(w, err)
 		return
 	}
 
 	originalFeed, err = c.store.FeedByID(userID, feedID)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch this feed"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -142,7 +142,7 @@ func (c *Controller) UpdateFeed(w http.ResponseWriter, r *http.Request) {
 func (c *Controller) GetFeeds(w http.ResponseWriter, r *http.Request) {
 	feeds, err := c.store.Feeds(context.New(r).UserID())
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch feeds from the database"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -159,7 +159,7 @@ func (c *Controller) GetFeed(w http.ResponseWriter, r *http.Request) {
 
 	feed, err := c.store.FeedByID(context.New(r).UserID(), feedID)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch this feed"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -188,7 +188,7 @@ func (c *Controller) RemoveFeed(w http.ResponseWriter, r *http.Request) {
 	}
 
 	if err := c.store.RemoveFeed(userID, feedID); err != nil {
-		json.ServerError(w, errors.New("Unable to remove this feed"))
+		json.ServerError(w, err)
 		return
 	}
 
diff --git a/api/icon.go b/api/icon.go
index 2d2171a86ba0aa75a72834984eace1e2c7e45107..0ad1081c28f3dbfab1d9792e70e0b06141626049 100644
--- a/api/icon.go
+++ b/api/icon.go
@@ -28,7 +28,7 @@ func (c *Controller) FeedIcon(w http.ResponseWriter, r *http.Request) {
 
 	icon, err := c.store.IconByFeedID(context.New(r).UserID(), feedID)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch feed icon"))
+		json.ServerError(w, err)
 		return
 	}
 
diff --git a/api/subscription.go b/api/subscription.go
index ee471c6bf936f5e17f18a1b8269de94301c8b49d..603b9321c4a6d376c91291bb241faaceef1e47bc 100644
--- a/api/subscription.go
+++ b/api/subscription.go
@@ -5,7 +5,6 @@
 package api // import "miniflux.app/api"
 
 import (
-	"errors"
 	"fmt"
 	"net/http"
 
@@ -27,7 +26,7 @@ func (c *Controller) GetSubscriptions(w http.ResponseWriter, r *http.Request) {
 		subscriptionInfo.Password,
 	)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to discover subscriptions"))
+		json.ServerError(w, err)
 		return
 	}
 
diff --git a/api/user.go b/api/user.go
index 1222ccdf323d8645856da43da63dd7f733a0e40c..5ad056ea82369a211a3e71a0eb1daab4f2cee9db 100644
--- a/api/user.go
+++ b/api/user.go
@@ -51,7 +51,7 @@ func (c *Controller) CreateUser(w http.ResponseWriter, r *http.Request) {
 
 	err = c.store.CreateUser(user)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to create this user"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -97,7 +97,7 @@ func (c *Controller) UpdateUser(w http.ResponseWriter, r *http.Request) {
 	}
 
 	if err = c.store.UpdateUser(originalUser); err != nil {
-		json.ServerError(w, errors.New("Unable to update this user"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -114,7 +114,7 @@ func (c *Controller) Users(w http.ResponseWriter, r *http.Request) {
 
 	users, err := c.store.Users()
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch the list of users"))
+		json.ServerError(w, err)
 		return
 	}
 
@@ -190,7 +190,7 @@ func (c *Controller) RemoveUser(w http.ResponseWriter, r *http.Request) {
 
 	user, err := c.store.UserByID(userID)
 	if err != nil {
-		json.ServerError(w, errors.New("Unable to fetch this user from the database"))
+		json.ServerError(w, err)
 		return
 	}