From 1245f004f4b69ab6ca0d0350f0cacf099375081f Mon Sep 17 00:00:00 2001 From: Dmitry Meyer Date: Tue, 21 Apr 2026 12:18:39 +0000 Subject: [PATCH 1/2] [Internal] Improve warning message in `ServerConfigManager.apply_config()` * Include project name * Include action -- create or update --- .../_internal/server/services/config.py | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/dstack/_internal/server/services/config.py b/src/dstack/_internal/server/services/config.py index 420aa6043..723903467 100644 --- a/src/dstack/_internal/server/services/config.py +++ b/src/dstack/_internal/server/services/config.py @@ -17,7 +17,7 @@ ServerClientError, ) from dstack._internal.core.models.backends.base import BackendType -from dstack._internal.core.models.common import CoreModel +from dstack._internal.core.models.common import ApplyAction, CoreModel from dstack._internal.server import settings from dstack._internal.server.models import ProjectModel, UserModel from dstack._internal.server.services import backends as backends_services @@ -164,20 +164,25 @@ async def _apply_project_config( comparable_backend_config = current_source_backend_config or current_backend_config if backend_config == comparable_backend_config: continue + # current_backend_config may be None if backend exists + # but it's config is invalid (e.g. cannot be decrypted). + # Update backend in this case. + if current_backend_config is None and not backend_exists: + apply_action = ApplyAction.CREATE + apply_func = backends_services.create_backend + else: + apply_action = ApplyAction.UPDATE + apply_func = backends_services.update_backend try: - # current_backend_config may be None if backend exists - # but it's config is invalid (e.g. cannot be decrypted). - # Update backend in this case. - if current_backend_config is None and not backend_exists: - await backends_services.create_backend( - session=session, project=project, config=backend_config - ) - else: - await backends_services.update_backend( - session=session, project=project, config=backend_config - ) + await apply_func(session=session, project=project, config=backend_config) except Exception as e: - logger.warning("Failed to configure backend %s: %s", backend_config.type, e) + logger.warning( + "Failed to %s backend %s in project %s: %s", + apply_action.value, + backend_config.type, + project.name, + e, + ) await delete_backends_safe( session=session, project=project, From fcf9303df6217cccf85c91e2c89cc19cc2760d7f Mon Sep 17 00:00:00 2001 From: Dmitry Meyer Date: Wed, 22 Apr 2026 08:13:16 +0000 Subject: [PATCH 2/2] Replace ApplyAction with plain strings --- src/dstack/_internal/server/services/config.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dstack/_internal/server/services/config.py b/src/dstack/_internal/server/services/config.py index 723903467..0bc201677 100644 --- a/src/dstack/_internal/server/services/config.py +++ b/src/dstack/_internal/server/services/config.py @@ -17,7 +17,7 @@ ServerClientError, ) from dstack._internal.core.models.backends.base import BackendType -from dstack._internal.core.models.common import ApplyAction, CoreModel +from dstack._internal.core.models.common import CoreModel from dstack._internal.server import settings from dstack._internal.server.models import ProjectModel, UserModel from dstack._internal.server.services import backends as backends_services @@ -168,17 +168,17 @@ async def _apply_project_config( # but it's config is invalid (e.g. cannot be decrypted). # Update backend in this case. if current_backend_config is None and not backend_exists: - apply_action = ApplyAction.CREATE + apply_action = "create" apply_func = backends_services.create_backend else: - apply_action = ApplyAction.UPDATE + apply_action = "update" apply_func = backends_services.update_backend try: await apply_func(session=session, project=project, config=backend_config) except Exception as e: logger.warning( "Failed to %s backend %s in project %s: %s", - apply_action.value, + apply_action, backend_config.type, project.name, e,