diff --git a/broker/src/asapo_broker/database/streams_test.go b/broker/src/asapo_broker/database/streams_test.go
index c972ba789f8d4b77e44f3c9d8b5a26416db770c9..fef6ff3afb5d5f5f74bcf85975c5e22748d2388e 100644
--- a/broker/src/asapo_broker/database/streams_test.go
+++ b/broker/src/asapo_broker/database/streams_test.go
@@ -54,6 +54,27 @@ func (suite *StreamsTestSuite) TestStreamsUsesCache() {
 	suite.Equal(int64(1), rec.Streams[0].TimestampLast)
 }
 
+func (suite *StreamsTestSuite) TestStreamsCacheexpires() {
+	db.settings.UpdateStreamCachePeriodMs = 100
+	var res1 StreamsRecord
+	go func() {
+		db.insertRecord(dbname, collection, &rec1)
+		streams.getStreams(&db, Request{DbName: dbname, ExtraParam: ""})
+		db.insertRecord(dbname, collection, &rec_finished)
+		res1,_ = streams.getStreams(&db, Request{DbName: dbname, ExtraParam: ""})
+	}()
+	db.insertRecord(dbname, collection+"1", &rec1_later)
+	res2,_ := streams.getStreams(&db, Request{DbName: dbname, ExtraParam: ""})
+	db.insertRecord(dbname, collection+"1", &rec_finished)
+	time.Sleep(time.Second)
+	res3, err := streams.getStreams(&db, Request{DbName: dbname, ExtraParam: ""})
+	suite.Nil(err)
+	suite.Equal(true, res3.Streams[0].Finished)
+	fmt.Println(res1,res2)
+//	suite.Equal(true, rec.Streams[1].Finished)
+}
+
+
 func (suite *StreamsTestSuite) TestStreamsGetFinishedInfo() {
 	db.settings.UpdateStreamCachePeriodMs = 1000
 	db.insertRecord(dbname, collection, &rec1)
diff --git a/common/cpp/src/database/mongodb_client.cpp b/common/cpp/src/database/mongodb_client.cpp
index 7cab88b4e40ae6f5e9b3547c65bb784213e6abf8..8a35d66cff0345d372b42ea078933351860e6256 100644
--- a/common/cpp/src/database/mongodb_client.cpp
+++ b/common/cpp/src/database/mongodb_client.cpp
@@ -417,7 +417,7 @@ Error StreamInfoFromDbResponse(const std::string &last_record_str,
         return err;
     }
 
-    return UpdateStreamInfoFromEarliestRecord(last_record_str,info);
+    return UpdateStreamInfoFromEarliestRecord(earliest_record_str,info);
 
 }
 
diff --git a/file_transfer/src/asapo_file_transfer/server/transfer.go b/file_transfer/src/asapo_file_transfer/server/transfer.go
index 8e6817007b75dc25ab7b589814c13a0788ea42f6..e6528ff34e280ccd9510d1e910f3038bb3ccb2b9 100644
--- a/file_transfer/src/asapo_file_transfer/server/transfer.go
+++ b/file_transfer/src/asapo_file_transfer/server/transfer.go
@@ -21,7 +21,7 @@ type fileTransferRequest struct {
 
 func Exists(name string) bool {
 	fi, err := os.Stat(name)
-	return !os.IsNotExist(err) && !fi.IsDir()
+	return err==nil && !fi.IsDir()
 }
 
 
@@ -42,7 +42,7 @@ func checkFileExists(r *http.Request,name string) (int,error) {
 	if !Exists(name) {
 		err_txt := "file "+name+" does not exist"
 		log.Error("cannot transfer file: "+err_txt)
-		return http.StatusBadRequest,errors.New(err_txt)
+		return http.StatusNotFound,errors.New(err_txt)
 	}
 	return http.StatusOK,nil
 
diff --git a/file_transfer/src/asapo_file_transfer/server/transfer_test.go b/file_transfer/src/asapo_file_transfer/server/transfer_test.go
index 378426407d26265af17b2ee6e522d023a540b207..d4117dcfd9a71939914f3f7227c8d18b148320ab 100644
--- a/file_transfer/src/asapo_file_transfer/server/transfer_test.go
+++ b/file_transfer/src/asapo_file_transfer/server/transfer_test.go
@@ -60,7 +60,7 @@ var transferFileTests = [] struct {
 	message string
 }{
 	{"folder","exists", prepareToken("folder"),http.StatusOK,"file transferred"},
-	{"folder","not_exists", prepareToken("folder"),http.StatusBadRequest,"file not exists"},
+	{"folder","not_exists", prepareToken("folder"),http.StatusNotFound,"file not exists"},
 	{"wrong_folder","p07", prepareToken("folder"),http.StatusUnauthorized,"wrong folder"},
 	{"folder","p07", "wrong token",http.StatusUnauthorized,"wrong token"},
 }