diff --git a/pkg/spaces/service.go b/pkg/spaces/service.go
index e8baf1851b57f8ed95fda4f2467489c053cf4a78..249221692684110e96c62fce37d70fc650d06945 100644
--- a/pkg/spaces/service.go
+++ b/pkg/spaces/service.go
@@ -2,6 +2,7 @@ package spaces
 
 import (
 	"context"
+	"slices"
 	"time"
 
 	"git.perx.ru/perxis/perxis-go/pkg/errors"
@@ -71,10 +72,10 @@ func IsSpaceAvailable(ctx context.Context, svc Spaces, spaceID string) error {
 	if err != nil {
 		return errors.Wrap(err, "fail to get space")
 	}
-	if sp.StateInfo == nil || sp.StateInfo != nil && (sp.StateInfo.State == StateNew || sp.StateInfo.State == StateReady) {
+	if sp.StateInfo == nil || slices.Contains(WriteAllowedStates, sp.StateInfo.State) {
 		return nil
 	}
-	return ErrSpaceNotAvailable
+	return errors.WithContext(ErrSpaceNotAvailable, "state", sp.StateInfo.State)
 }
 
 func IsSpaceReadable(ctx context.Context, svc Spaces, spaceID string) error {
@@ -82,7 +83,7 @@ func IsSpaceReadable(ctx context.Context, svc Spaces, spaceID string) error {
 	if err != nil {
 		return errors.Wrap(err, "fail to get space")
 	}
-	if sp.StateInfo == nil || sp.StateInfo != nil && sp.StateInfo.State == StateNew || sp.StateInfo.State == StateReady || sp.StateInfo.State == StateMigration {
+	if sp.StateInfo == nil || slices.Contains(ReadAllowedStates, sp.StateInfo.State) {
 		return nil
 	}
 	return errors.WithContext(ErrSpaceNotAvailable, "state", sp.StateInfo.State)
diff --git a/pkg/spaces/space.go b/pkg/spaces/space.go
index 985cd6c5356b3e519bbcf5a3264ee5ab42053131..baa44124b6830aa8c4f666f0300661952eadbc9d 100644
--- a/pkg/spaces/space.go
+++ b/pkg/spaces/space.go
@@ -46,6 +46,20 @@ func (s State) String() string {
 	}
 }
 
+var (
+	ReadAllowedStates = []State{
+		StateNew,
+		StateReady,
+		StateMigrationScheduled,
+		StateMigration,
+	}
+
+	WriteAllowedStates = []State{
+		StateNew,
+		StateReady,
+	}
+)
+
 type Config struct {
 	Features []string // Deprecated Возможности используемые пространством
 }