lablup / lablup/backend.ai

Circular import error during ./scripts/install-dev.sh (DeploymentFilter ImportError)

Open
#7,618 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
17h 7m
Merged PRs (30d)
358

Description

### What Operating System(s) are you seeing this problem on?

Linux (x86-64)

### Backend.AI version

02945791d02af206e1ded88a4b334148f95a2f3c

### Describe the bug

### Describe the bug

While running the development installation script (`./scripts/install-dev.sh`),
the installation fails due to a circular import error in the GraphQL deployment modules.

---

### Command used

```bash
./scripts/install-dev.sh

ImportError: cannot import name 'DeploymentFilter' from partially initialized module
'ai.backend.manager.api.gql.deployment.types.deployment'
(most likely due to a circular import)

### Stack trace
[INFO] Creating docker compose configuration file for "halfstack"...
Generating GraphQL v1 schema...
2025-12-29 13:47:03.592 INFO ai.backend.common.identity [143501] Detected environment: on-premise setup
2025-12-29 13:47:03.592 INFO ai.backend.common.identity [143501] The agent node ID is set using the hostname.
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/home/moon-asus/install/backend.ai/src/ai/backend/cli/__main__.py", line 12, in
main(max_content_width=shutil.get_terminal_size().columns - 2)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1161, in __call__
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/home/moon-asus/install/backend.ai/src/ai/backend/cli/extensions.py", line 25, in main
super().main(
~~~~~~~~~~~~^
*args,
^^^^^^
...<2 lines>...
**kwargs,
^^^^^^^^^
)
^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1082, in main
rv = self.invoke(ctx)
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1691, in invoke
cmd_name, cmd, args = self.resolve_command(ctx, args)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1738, in resolve_command
cmd = self.get_command(ctx, cmd_name)
File "/home/moon-asus/install/backend.ai/src/ai/backend/common/cli.py", line 15, in wrapped
return method(self._impl, *args, **kwargs)
^^^^^^^^^^
File "/home/moon-asus/install/backend.ai/src/ai/backend/common/cli.py", line 49, in _impl
self._loaded_impl = getattr(import_module(module), name)
~~~~~~~~~~~~~^^^^^^^^
File "/home/moon-asus/.pyenv/versions/3.13.7/lib/python3.13/importlib/__init__.py", line 88, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 1026, in exec_module
File "", line 488, in _call_with_frames_removed
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/cli/api.py", line 15, in
from ..api.gql.schema import schema as strawberry_schema
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/schema.py", line 39, in
from .deployment import (
...<30 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/__init__.py", line 14, in
from .resolver import (
...<30 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/resolver/__init__.py", line 7, in
from .access_token import (
create_access_token,
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/resolver/access_token.py", line 8, in
from ai.backend.manager.api.gql.deployment.types.access_token import (
...<3 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/types/__init__.py", line 22, in
from .deployment import (
...<24 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/types/deployment.py", line 27, in
from ai.backend.manager.api.gql.deployment.fetcher.access_token import fetch_access_tokens
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/fetcher/__init__.py", line 7, in
from .deployment import (
...<3 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/fetcher/deployment.py", line 14, in
from ai.backend.manager.api.gql.deployment.types.deployment import (
...<5 lines>...
)
ImportError: cannot import name 'DeploymentFilter' from partially initialized module 'ai.backend.manager.api.gql.deployment.types.deployment' (most likely due to a circular import) (/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/types/deployment.py)

### To Reproduce

_No response_

### Expected Behavior

_No response_

### Anything else?

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.