[ISSUE-67851068] fix http status code for blob not found
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
 }