diff --git a/authorizer/src/asapo_authorizer/server/authorize_test.go b/authorizer/src/asapo_authorizer/server/authorize_test.go
index 3f7781e04b10f406046d5565d9f4f274b2f3aa0c..1c6e6400554b5ee6fe8fbc6dd324b8ad1ae7d346 100644
--- a/authorizer/src/asapo_authorizer/server/authorize_test.go
+++ b/authorizer/src/asapo_authorizer/server/authorize_test.go
@@ -225,7 +225,7 @@ var authTests = []struct {
 		`{"beamtimeId":"test_online","beamline":"bl1","dataSource":"dataSource","corePath":"./tf/gpfs/bl1/2019/data/test_online","beamline-path":"./bl1/current","source-type":"raw","access-types":["read","write","writeraw"]}`, 0},
 	{"raw", "auto", "p07", "dataSource", "", "127.0.0.1", http.StatusOK, "raw type, auto beamtime",
 		`{"beamtimeId":"11111111","beamline":"p07","dataSource":"dataSource","corePath":"asap3/petra3/gpfs/p07/2020/data/11111111","beamline-path":"./p07/current","source-type":"raw","access-types":["read","write","writeraw"]}`, 0},
-	{"raw", "auto", "p07", "noldap", "", "127.0.0.1", http.StatusNotFound, "no conection to ldap",
+	{"raw", "auto", "p07", "noldap", "", "127.0.0.1", http.StatusServiceUnavailable, "no conection to ldap",
 		"", 0},
 
 	{"raw", "auto", "p07", "dataSource", prepareAsapoToken("bl_p07", []string{"read", "writeraw"}), "127.0.0.2", http.StatusOK, "raw type with token",
diff --git a/authorizer/src/asapo_authorizer/server/server_nottested.go b/authorizer/src/asapo_authorizer/server/server_nottested.go
index 320e47a852917a6f4f7f8c180459796df4df64c9..6841cf5f377ddbbbcbd2c91aa3c4710ce6540bbf 100644
--- a/authorizer/src/asapo_authorizer/server/server_nottested.go
+++ b/authorizer/src/asapo_authorizer/server/server_nottested.go
@@ -12,8 +12,8 @@ import (
 	"asapo_common/version"
 	"errors"
 	"net/http"
-	"strconv"
 	_ "net/http/pprof"
+	"strconv"
 )
 
 func Start() {
diff --git a/broker/src/asapo_broker/server/authorizer.go b/broker/src/asapo_broker/server/authorizer.go
index b5b51ff33a60710a62ac53f7800830012175af44..cac330d1be034930207613d9cd15c69b368a1153 100644
--- a/broker/src/asapo_broker/server/authorizer.go
+++ b/broker/src/asapo_broker/server/authorizer.go
@@ -87,6 +87,8 @@ func (a *AsapoAuthorizer) doRequest(req *http.Request) (token Token, err error)
 		//do nothing
 	case http.StatusUnauthorized:
 		return token, &AuthorizationError{errors.New("authorizer rejected to authorize: " + string(body)), http.StatusUnauthorized}
+	case http.StatusServiceUnavailable:
+		return token, &AuthorizationError{errors.New("authorizer service unavailable: " + string(body)), http.StatusServiceUnavailable}
 	default:
 		return token, errors.New("authorizer returned " + resp.Status + ": " + string(body))
 	}
diff --git a/broker/src/asapo_broker/server/process_request_test.go b/broker/src/asapo_broker/server/process_request_test.go
index 781a7f16b2df345e4c1cb77aca727f7ec7a85608..cf0d41626723cd026791b9c9c9ac9471d78c0ce2 100644
--- a/broker/src/asapo_broker/server/process_request_test.go
+++ b/broker/src/asapo_broker/server/process_request_test.go
@@ -176,7 +176,7 @@ func (suite *ProcessRequestTestSuite) TestProcessRequestWithConnectionError() {
 
 	w := doRequest("/beamtime/" + expectedBeamtimeId + "/" + expectedSource + "/" + expectedStream + "/" + expectedGroupID + "/next" + correctTokenSuffix)
 	time.Sleep(time.Second)
-	suite.Equal(http.StatusNotFound, w.Code, "data not found")
+	suite.Equal(http.StatusServiceUnavailable, w.Code, "data not found")
 }
 
 func (suite *ProcessRequestTestSuite) TestProcessRequestWithInternalDBError() {
@@ -191,7 +191,7 @@ func (suite *ProcessRequestTestSuite) TestProcessRequestWithInternalDBError() {
 	w := doRequest("/beamtime/" + expectedBeamtimeId + "/" + expectedSource + "/" + expectedStream + "/" + expectedGroupID + "/next" + correctTokenSuffix)
 	time.Sleep(time.Second)
 
-	suite.Equal(http.StatusNotFound, w.Code, "internal error")
+	suite.Equal(http.StatusServiceUnavailable, w.Code, "internal error")
 }
 
 func (suite *ProcessRequestTestSuite) TestProcessRequestAddsCounter() {
diff --git a/broker/src/asapo_broker/server/request_common.go b/broker/src/asapo_broker/server/request_common.go
index 17a4b30aedd417fd018b69382284ab5e305322f9..1a0d5e875034ed369f85128929ef3baae1c17c1f 100644
--- a/broker/src/asapo_broker/server/request_common.go
+++ b/broker/src/asapo_broker/server/request_common.go
@@ -16,7 +16,7 @@ func writeAuthAnswer(w http.ResponseWriter, requestName string, db_name string,
 	case AuthorizationError:
 		w.WriteHeader(er.statusCode)
 	default:
-		w.WriteHeader(http.StatusInternalServerError)
+		w.WriteHeader(http.StatusServiceUnavailable)
 	}
 	w.Write([]byte(err.Error()))
 }
diff --git a/broker/src/asapo_broker/server/server_nottested.go b/broker/src/asapo_broker/server/server_nottested.go
index a4ec18874707606dc2c95271b046ec849f55ec5d..ec512247a9d1ce7052f1ac32ad99ff205a434f12 100644
--- a/broker/src/asapo_broker/server/server_nottested.go
+++ b/broker/src/asapo_broker/server/server_nottested.go
@@ -7,8 +7,8 @@ import (
 	"asapo_common/utils"
 	"errors"
 	"net/http"
-	"strconv"
 	_ "net/http/pprof"
+	"strconv"
 )
 
 func StartStatistics() {
diff --git a/common/go/src/asapo_common/utils/status_codes.go b/common/go/src/asapo_common/utils/status_codes.go
index 7002a963e250b20b9af88c1125b54c2993215aca..fdd205418a2fb6abd8e22078bdb104e35fa5ad71 100644
--- a/common/go/src/asapo_common/utils/status_codes.go
+++ b/common/go/src/asapo_common/utils/status_codes.go
@@ -9,7 +9,7 @@ const (
 const (
 	//error codes
 	StatusTransactionInterrupted = http.StatusInternalServerError
-	StatusServiceUnavailable     = http.StatusNotFound
+	StatusServiceUnavailable     = http.StatusServiceUnavailable
 	StatusWrongInput             = http.StatusBadRequest
 	StatusNoData                 = http.StatusConflict
 	StatusPartialData            = http.StatusPartialContent
diff --git a/consumer/api/cpp/include/asapo/consumer/consumer_error.h b/consumer/api/cpp/include/asapo/consumer/consumer_error.h
index 55618fddc9ea98dd8f68cbf0bfa38821d02f72d8..efa0631dab069a96595de024b4873d2d36e68235 100644
--- a/consumer/api/cpp/include/asapo/consumer/consumer_error.h
+++ b/consumer/api/cpp/include/asapo/consumer/consumer_error.h
@@ -41,8 +41,6 @@ auto const kPartialData = ConsumerErrorTemplate {
     "partial data", ConsumerErrorType::kPartialData
 };
 
-
-
 auto const kLocalIOError = ConsumerErrorTemplate {
     "local i/o error", ConsumerErrorType::kLocalIOError
 };
@@ -76,8 +74,6 @@ auto const kUnavailableService = ConsumerErrorTemplate {
     "service unavailable", ConsumerErrorType::kUnavailableService
 };
 
-
-
 }
 }
 
diff --git a/consumer/api/cpp/src/consumer_impl.cpp b/consumer/api/cpp/src/consumer_impl.cpp
index 973e6a98a5313364d75c2455662476fd25e2401f..659ad07a261974ce1cf0dba75cddc107cdb463a7 100644
--- a/consumer/api/cpp/src/consumer_impl.cpp
+++ b/consumer/api/cpp/src/consumer_impl.cpp
@@ -91,6 +91,8 @@ Error ConsumerErrorFromHttpCode(const RequestOutput* response, const HttpCode& c
         return ConsumerErrorTemplates::kWrongInput.Generate(response->to_string());
     case HttpCode::InternalServerError:
         return ConsumerErrorTemplates::kInterruptedTransaction.Generate(response->to_string());
+    case HttpCode::ServiceUnavailable:
+        return ConsumerErrorTemplates::kUnavailableService.Generate(response->to_string());
     case HttpCode::NotFound:
         return ConsumerErrorTemplates::kUnavailableService.Generate(response->to_string());
     case HttpCode::Conflict:
diff --git a/consumer/api/cpp/unittests/test_consumer_impl.cpp b/consumer/api/cpp/unittests/test_consumer_impl.cpp
index ae11c5592d26e5e7746cf4ad9159f8d439fddb36..0b783b42bf055819ae9f07860b4bdb3d34414c66 100644
--- a/consumer/api/cpp/unittests/test_consumer_impl.cpp
+++ b/consumer/api/cpp/unittests/test_consumer_impl.cpp
@@ -146,7 +146,7 @@ class ConsumerImplTests : public Test {
 
     void MockGetError() {
         EXPECT_CALL(mock_http_client, Get_t(HasSubstr(expected_broker_api), _, _)).WillOnce(DoAll(
-                    SetArgPointee<1>(HttpCode::NotFound),
+                    SetArgPointee<1>(HttpCode::ServiceUnavailable),
                     SetArgPointee<2>(asapo::IOErrorTemplates::kUnknownIOError.Generate().release()),
                     Return("")
                 ));
@@ -442,7 +442,7 @@ TEST_F(ConsumerImplTests, GetMessageReturnsNoDataAfterTimeoutEvenIfOtherErrorOcc
                                         "/stream/0/"
                                         + std::to_string(expected_dataset_id) + "?token="
                                         + expected_token, _, _)).Times(AtLeast(1)).WillRepeatedly(DoAll(
-                                                    SetArgPointee<1>(HttpCode::NotFound),
+                                                    SetArgPointee<1>(HttpCode::ServiceUnavailable),
                                                     SetArgPointee<2>(nullptr),
                                                     Return("")));
 
@@ -1400,7 +1400,7 @@ TEST_F(ConsumerImplTests, NegativeAcknowledgeUsesCorrectUri) {
 
 TEST_F(ConsumerImplTests, CanInterruptOperation) {
     EXPECT_CALL(mock_http_client, Get_t(_, _, _)).Times(AtLeast(1)).WillRepeatedly(DoAll(
-                SetArgPointee<1>(HttpCode::NotFound),
+                SetArgPointee<1>(HttpCode::ServiceUnavailable),
                 SetArgPointee<2>(nullptr),
                 Return("")));