diff --git a/api.go b/api.go
index 4ffc12e..983fdf5 100644
--- a/api.go
+++ b/api.go
@@ -50,6 +50,7 @@
 	API_ERR_INTERNAL
 	API_ERR_BAD_CONFIG_ID
 	API_ERR_NOT_FOUND
+	API_ERR_BLOB_NOT_FOUND
 )
 
 const (
@@ -221,9 +222,12 @@
 	blobId := vars["blobId"]
 	fs, err := a.dbMan.getLocalFSLocation(blobId)
 	if err != nil {
-		a.writeInternalError(w, "BlobId "+blobId+" has no mapping blob file")
+		a.writeInternalError(w, "Db error when getting BlobId="+blobId)
 		return
 	}
+	if fs == "" {
+		a.writeError(w, http.StatusNotFound, API_ERR_BLOB_NOT_FOUND, "BlobId="+blobId+" not found.")
+	}
 	byte, err := ioutil.ReadFile(fs)
 	if err != nil {
 		a.writeInternalError(w, err.Error())
diff --git a/data.go b/data.go
index d424e2b..ddf9a6c 100644
--- a/data.go
+++ b/data.go
@@ -299,21 +299,17 @@
 func (dbc *dbManager) getLocalFSLocation(blobId string) (localFsLocation string, err error) {
 
 	log.Debugf("Getting the blob file for blobId {%s}", blobId)
-	rows, err := dbc.getDb().Query("SELECT local_fs_location FROM apid_blob_available WHERE id = '" + blobId + "'")
+	row := dbc.getDb().QueryRow("SELECT local_fs_location FROM apid_blob_available WHERE id = '" + blobId + "'")
+	err = row.Scan(&localFsLocation)
 	if err != nil {
-		log.Errorf("SELECT local_fs_location failed %v", err)
+		if err == sql.ErrNoRows {
+			log.Debugf("No local_fs_location associated with blobid=%v", blobId)
+			return "", nil
+		}
+		log.Errorf("Scan local_fs_location failed %v", err)
 		return "", err
 	}
-
-	defer rows.Close()
-	for rows.Next() {
-		err = rows.Scan(&localFsLocation)
-		if err != nil {
-			log.Errorf("Scan local_fs_location failed %v", err)
-			return "", err
-		}
-		log.Debugf("Got the blob file {%s} for blobId {%s}", localFsLocation, blobId)
-	}
+	log.Debugf("Got the blob file {%s} for blobId {%s}", localFsLocation, blobId)
 	return
 }
 
