We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
When running conda-store without the ui enabled auth no longer works. For example, given the following relevant config (notice the ui is turned off)
c.CondaStoreServer.enable_ui = False c.CondaStoreServer.enable_api = True c.CondaStoreServer.enable_registry = False c.CondaStoreServer.enable_metrics = False
trying to login to conda store will produce a 500 error. The full error from the logs is shown below. Relevant part of the error:
conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/requests.py", line 186, in url_for conda-store-server-1 | url_path = url_path_provider.url_path_for(name, **path_params) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 662, in url_path_for conda-store-server-1 | raise NoMatchFound(name, path_params) conda-store-server-1 | starlette.routing.NoMatchFound: No route exists for name "ui_list_environments" and params "".
conda store auth functionality should not be tied to if the ui is enabled (eg. using the config option c.CondaStoreServer.enable_ui).
c.CondaStoreServer.enable_ui
To reproduce the problem launch conda-store with docker compose. You'll need the docker-compose.yml and condastore_config.py given by
docker-compose.yml
services: conda-store-worker: image: quansight/conda-store-server:${CONDA_STORE_SERVER_VERSION:-latest} volumes: - ./docker/assets/environments:/opt/environments:ro - ./docker/assets/conda_store_config.py:/opt/conda_store/conda_store_config.py:ro depends_on: conda-store-server: condition: service_healthy platform: linux/amd64 command: [ "conda-store-worker", "--config", "/opt/conda_store/conda_store_config.py" ] conda-store-server: image: quansight/conda-store-server:${CONDA_STORE_SERVER_VERSION:-latest} depends_on: postgres: condition: service_healthy redis: condition: service_healthy volumes: - ./conda_store_config.py:/opt/conda_store/conda_store_config.py:ro healthcheck: test: ["CMD", "curl", "--fail", "http://localhost:8080/conda-store/api/v1/"] interval: 10s timeout: 5s retries: 5 platform: linux/amd64 command: [ "conda-store-server", "--config", "/opt/conda_store/conda_store_config.py" ] ports: - "8080:8080" minio: image: minio/minio:RELEASE.2020-11-10T21-02-24Z ports: - "9000:9000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 10s timeout: 5s retries: 5 entrypoint: sh command: -c 'mkdir -p /data/conda-store && /usr/bin/minio server /data' environment: MINIO_ACCESS_KEY: admin MINIO_SECRET_KEY: password postgres: image: postgres:13 user: postgres ports: - 5432:5432 healthcheck: test: ["CMD-SHELL", "pg_isready"] interval: 10s timeout: 5s retries: 5 environment: POSTGRES_PASSWORD: password POSTGRES_DB: conda-store redis: image: bitnami/redis healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 environment: REDIS_PASSWORD: password conda-store-ui: build: context: . target: dev command: "yarn run start:ui" profiles: - local-dev ports: - "8000:8000" depends_on: conda-store-server: condition: service_healthy platform: linux/amd64 volumes: - ./src:/usr/src/app/src - ./style:/usr/src/app/style - ./.env:/usr/src/app/.env healthcheck: test: ["CMD", "curl", "--fail", "http://localhost:8000"] interval: 20s timeout: 10s retries: 8
conda_store_config.py
import logging from conda_store_server.storage import S3Storage from conda_store_server.server.auth import DummyAuthentication # ================================== # conda-store settings # ================================== c.CondaStore.storage_class = S3Storage c.CondaStore.store_directory = "/var/lib/conda-store/" c.CondaStore.environment_directory = "/opt/conda-store/envs/{namespace}-{name}" # c.CondaStore.database_url = "mysql+pymysql://admin:password@mysql/conda-store" c.CondaStore.database_url = "postgresql+psycopg2://postgres:password@postgres/conda-store" c.CondaStore.redis_url = "redis://:password@redis:6379/0" c.CondaStore.default_uid = 1000 c.CondaStore.default_gid = 1000 c.CondaStore.default_permissions = "775" c.CondaStore.conda_included_packages = [ 'ipykernel' ] c.CondaStore.pypi_included_packages = [ 'nothing' ] c.S3Storage.internal_endpoint = "minio:9000" c.S3Storage.external_endpoint = "localhost:9000" c.S3Storage.access_key = "admin" c.S3Storage.secret_key = "password" c.S3Storage.region = "us-east-1" # minio region default c.S3Storage.bucket_name = "conda-store" c.S3Storage.internal_secure = False c.S3Storage.external_secure = False # ================================== # server settings # ================================== c.CondaStoreServer.log_level = logging.INFO c.CondaStoreServer.enable_ui = False c.CondaStoreServer.enable_api = True c.CondaStoreServer.enable_registry = False c.CondaStoreServer.enable_metrics = False c.CondaStoreServer.address = "0.0.0.0" c.CondaStoreServer.port = 8080 # This MUST start with `/` c.CondaStoreServer.url_prefix = "/conda-store" # ================================== # auth settings # ================================== c.CondaStoreServer.authentication_class = DummyAuthentication c.CondaStoreServer.template_vars = { "banner": '<div class="alert alert-danger" role="alert">This is a localhost server</div>', "logo": "https://raw.githubusercontent.com/conda-incubator/conda-store/main/docusaurus-docs/static/img/conda-store-logo-horizontal-lockup.svg", } # ================================== # worker settings # ================================== c.CondaStoreWorker.log_level = logging.INFO c.CondaStoreWorker.watch_paths = ["/opt/environments"] c.CondaStoreWorker.concurrency = 4
The full error message produced by the server is
conda-store-server-1 | INFO: 172.18.0.1:40022 - "GET /conda-store/login?next=http://localhost:8000/ HTTP/1.1" 307 Temporary Redirect conda-store-server-1 | No route exists for name "ui_list_environments" and params "". conda-store-server-1 | INFO: 172.18.0.1:40022 - "GET /conda-store/login/?next=http://localhost:8000/ HTTP/1.1" 500 Internal Server Error conda-store-server-1 | ERROR: Exception in ASGI application conda-store-server-1 | + Exception Group Traceback (most recent call last): conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups conda-store-server-1 | | yield conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__ conda-store-server-1 | | async with anyio.create_task_group() as task_group: conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 763, in __aexit__ conda-store-server-1 | | raise BaseExceptionGroup( conda-store-server-1 | | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception) conda-store-server-1 | +-+---------------- 1 ---------------- conda-store-server-1 | | Traceback (most recent call last): conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ conda-store-server-1 | | await self.app(scope, receive, _send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__ conda-store-server-1 | | with collapse_excgroups(): conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/contextlib.py", line 158, in __exit__ conda-store-server-1 | | self.gen.throw(value) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups conda-store-server-1 | | raise exc conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__ conda-store-server-1 | | response = await self.dispatch_func(request, call_next) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/app.py", line 256, in conda_store_middleware conda-store-server-1 | | response = await call_next(request) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next conda-store-server-1 | | raise app_exc conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro conda-store-server-1 | | await self.app(scope, receive_or_disconnect, send_no_error) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__ conda-store-server-1 | | await self.app(scope, receive, send_wrapper) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/cors.py", line 93, in __call__ conda-store-server-1 | | await self.simple_response(scope, receive, send, request_headers=headers) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/cors.py", line 144, in simple_response conda-store-server-1 | | await self.app(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ conda-store-server-1 | | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app conda-store-server-1 | | raise exc conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app conda-store-server-1 | | await app(scope, receive, sender) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ conda-store-server-1 | | await self.middleware_stack(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 735, in app conda-store-server-1 | | await route.handle(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle conda-store-server-1 | | await self.app(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 76, in app conda-store-server-1 | | await wrap_app_handling_exceptions(app, request)(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app conda-store-server-1 | | raise exc conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app conda-store-server-1 | | await app(scope, receive, sender) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 73, in app conda-store-server-1 | | response = await f(request) conda-store-server-1 | | ^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app conda-store-server-1 | | raw_response = await run_endpoint_function( conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/routing.py", line 214, in run_endpoint_function conda-store-server-1 | | return await run_in_threadpool(dependant.call, **values) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool conda-store-server-1 | | return await anyio.to_thread.run_sync(func, *args) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync conda-store-server-1 | | return await get_async_backend().run_sync_in_worker_thread( conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread conda-store-server-1 | | return await future conda-store-server-1 | | ^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 943, in run conda-store-server-1 | | result = context.run(func, *args) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/server/auth.py", line 523, in get_login_method conda-store-server-1 | | return templates.TemplateResponse( conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 209, in TemplateResponse conda-store-server-1 | | return _TemplateResponse( conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 40, in __init__ conda-store-server-1 | | content = template.render(context) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/jinja2/environment.py", line 1304, in render conda-store-server-1 | | self.environment.handle_exception() conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/jinja2/environment.py", line 939, in handle_exception conda-store-server-1 | | raise rewrite_traceback_stack(source=source) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/login.html", line 7, in top-level template code conda-store-server-1 | | {% extends 'base.html' %} conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/base.html", line 33, in top-level template code conda-store-server-1 | | {% include 'navigation.html' %} conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/navigation.html", line 8, in top-level template code conda-store-server-1 | | <a class="navbar-brand" href="{{ url_for('ui_list_environments') }}"> conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 126, in url_for conda-store-server-1 | | return request.url_for(name, **path_params) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/requests.py", line 186, in url_for conda-store-server-1 | | url_path = url_path_provider.url_path_for(name, **path_params) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 662, in url_path_for conda-store-server-1 | | raise NoMatchFound(name, path_params) conda-store-server-1 | | starlette.routing.NoMatchFound: No route exists for name "ui_list_environments" and params "". conda-store-server-1 | +------------------------------------ conda-store-server-1 | conda-store-server-1 | During handling of the above exception, another exception occurred: conda-store-server-1 | conda-store-server-1 | Traceback (most recent call last): conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ conda-store-server-1 | await self.app(scope, receive, _send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__ conda-store-server-1 | with collapse_excgroups(): conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/contextlib.py", line 158, in __exit__ conda-store-server-1 | self.gen.throw(value) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups conda-store-server-1 | raise exc conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__ conda-store-server-1 | response = await self.dispatch_func(request, call_next) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/app.py", line 256, in conda_store_middleware conda-store-server-1 | response = await call_next(request) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next conda-store-server-1 | raise app_exc conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro conda-store-server-1 | await self.app(scope, receive_or_disconnect, send_no_error) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__ conda-store-server-1 | await self.app(scope, receive, send_wrapper) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/cors.py", line 93, in __call__ conda-store-server-1 | await self.simple_response(scope, receive, send, request_headers=headers) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/cors.py", line 144, in simple_response conda-store-server-1 | await self.app(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ conda-store-server-1 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app conda-store-server-1 | raise exc conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app conda-store-server-1 | await app(scope, receive, sender) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ conda-store-server-1 | await self.middleware_stack(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 735, in app conda-store-server-1 | await route.handle(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle conda-store-server-1 | await self.app(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 76, in app conda-store-server-1 | await wrap_app_handling_exceptions(app, request)(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app conda-store-server-1 | raise exc conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app conda-store-server-1 | await app(scope, receive, sender) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 73, in app conda-store-server-1 | response = await f(request) conda-store-server-1 | ^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app conda-store-server-1 | raw_response = await run_endpoint_function( conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/routing.py", line 214, in run_endpoint_function conda-store-server-1 | return await run_in_threadpool(dependant.call, **values) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool conda-store-server-1 | return await anyio.to_thread.run_sync(func, *args) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync conda-store-server-1 | return await get_async_backend().run_sync_in_worker_thread( conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread conda-store-server-1 | return await future conda-store-server-1 | ^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 943, in run conda-store-server-1 | result = context.run(func, *args) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/server/auth.py", line 523, in get_login_method conda-store-server-1 | return templates.TemplateResponse( conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 209, in TemplateResponse conda-store-server-1 | return _TemplateResponse( conda-store-server-1 | ^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 40, in __init__ conda-store-server-1 | content = template.render(context) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/jinja2/environment.py", line 1304, in render conda-store-server-1 | self.environment.handle_exception() conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/jinja2/environment.py", line 939, in handle_exception conda-store-server-1 | raise rewrite_traceback_stack(source=source) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/login.html", line 7, in top-level template code conda-store-server-1 | {% extends 'base.html' %} conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/base.html", line 33, in top-level template code conda-store-server-1 | {% include 'navigation.html' %} conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/navigation.html", line 8, in top-level template code conda-store-server-1 | <a class="navbar-brand" href="{{ url_for('ui_list_environments') }}"> conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 126, in url_for conda-store-server-1 | return request.url_for(name, **path_params) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/requests.py", line 186, in url_for conda-store-server-1 | url_path = url_path_provider.url_path_for(name, **path_params) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 662, in url_path_for conda-store-server-1 | raise NoMatchFound(name, path_params) conda-store-server-1 | starlette.routing.NoMatchFound: No route exists for name "ui_list_environments" and params "". conda-store-server-1 | conda-store-server-1 | During handling of the above exception, another exception occurred: conda-store-server-1 | conda-store-server-1 | Traceback (most recent call last): conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi conda-store-server-1 | result = await app( # type: ignore[func-returns-value] conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__ conda-store-server-1 | await super().__call__(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ conda-store-server-1 | await self.middleware_stack(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/errors.py", line 177, in __call__ conda-store-server-1 | response = await self.handler(request, exc) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/app.py", line 275, in exception_handler conda-store-server-1 | return await http_exception_handler(request, exc) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/app.py", line 264, in http_exception_handler conda-store-server-1 | "message": exc.detail, conda-store-server-1 | ^^^^^^^^^^ conda-store-server-1 | AttributeError: 'NoMatchFound' object has no attribute 'detail' conda-store-server-1 | INFO: 172.18.0.1:40026 - "GET /conda-store/login?next=http://localhost:8000/ HTTP/1.1" 307 Temporary Redirect conda-store-server-1 | ERROR: Exception in ASGI application conda-store-server-1 | + Exception Group Traceback (most recent call last): conda-store-server-1 | No route exists for name "ui_list_environments" and params "". conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups conda-store-server-1 | INFO: 172.18.0.1:40026 - "GET /conda-store/login/?next=http://localhost:8000/ HTTP/1.1" 500 Internal Server Error conda-store-server-1 | | yield conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__ conda-store-server-1 | | async with anyio.create_task_group() as task_group: conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 763, in __aexit__ conda-store-server-1 | | raise BaseExceptionGroup( conda-store-server-1 | | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception) conda-store-server-1 | +-+---------------- 1 ---------------- conda-store-server-1 | | Traceback (most recent call last): conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ conda-store-server-1 | | await self.app(scope, receive, _send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__ conda-store-server-1 | | with collapse_excgroups(): conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/contextlib.py", line 158, in __exit__ conda-store-server-1 | | self.gen.throw(value) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups conda-store-server-1 | | raise exc conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__ conda-store-server-1 | | response = await self.dispatch_func(request, call_next) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/app.py", line 256, in conda_store_middleware conda-store-server-1 | | response = await call_next(request) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next conda-store-server-1 | | raise app_exc conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro conda-store-server-1 | | await self.app(scope, receive_or_disconnect, send_no_error) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__ conda-store-server-1 | | await self.app(scope, receive, send_wrapper) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/cors.py", line 85, in __call__ conda-store-server-1 | | await self.app(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ conda-store-server-1 | | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app conda-store-server-1 | | raise exc conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app conda-store-server-1 | | await app(scope, receive, sender) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ conda-store-server-1 | | await self.middleware_stack(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 735, in app conda-store-server-1 | | await route.handle(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle conda-store-server-1 | | await self.app(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 76, in app conda-store-server-1 | | await wrap_app_handling_exceptions(app, request)(scope, receive, send) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app conda-store-server-1 | | raise exc conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app conda-store-server-1 | | await app(scope, receive, sender) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 73, in app conda-store-server-1 | | response = await f(request) conda-store-server-1 | | ^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app conda-store-server-1 | | raw_response = await run_endpoint_function( conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/routing.py", line 214, in run_endpoint_function conda-store-server-1 | | return await run_in_threadpool(dependant.call, **values) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool conda-store-server-1 | | return await anyio.to_thread.run_sync(func, *args) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync conda-store-server-1 | | return await get_async_backend().run_sync_in_worker_thread( conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread conda-store-server-1 | | return await future conda-store-server-1 | | ^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 943, in run conda-store-server-1 | | result = context.run(func, *args) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/server/auth.py", line 523, in get_login_method conda-store-server-1 | | return templates.TemplateResponse( conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 209, in TemplateResponse conda-store-server-1 | | return _TemplateResponse( conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 40, in __init__ conda-store-server-1 | | content = template.render(context) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/jinja2/environment.py", line 1304, in render conda-store-server-1 | | self.environment.handle_exception() conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/jinja2/environment.py", line 939, in handle_exception conda-store-server-1 | | raise rewrite_traceback_stack(source=source) conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/login.html", line 7, in top-level template code conda-store-server-1 | | {% extends 'base.html' %} conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/base.html", line 33, in top-level template code conda-store-server-1 | | {% include 'navigation.html' %} conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/navigation.html", line 8, in top-level template code conda-store-server-1 | | <a class="navbar-brand" href="{{ url_for('ui_list_environments') }}"> conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 126, in url_for conda-store-server-1 | | return request.url_for(name, **path_params) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/requests.py", line 186, in url_for conda-store-server-1 | | url_path = url_path_provider.url_path_for(name, **path_params) conda-store-server-1 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 662, in url_path_for conda-store-server-1 | | raise NoMatchFound(name, path_params) conda-store-server-1 | | starlette.routing.NoMatchFound: No route exists for name "ui_list_environments" and params "". conda-store-server-1 | +------------------------------------ conda-store-server-1 | conda-store-server-1 | During handling of the above exception, another exception occurred: conda-store-server-1 | conda-store-server-1 | Traceback (most recent call last): conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ conda-store-server-1 | await self.app(scope, receive, _send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__ conda-store-server-1 | with collapse_excgroups(): conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/contextlib.py", line 158, in __exit__ conda-store-server-1 | self.gen.throw(value) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups conda-store-server-1 | raise exc conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__ conda-store-server-1 | response = await self.dispatch_func(request, call_next) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/app.py", line 256, in conda_store_middleware conda-store-server-1 | response = await call_next(request) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next conda-store-server-1 | raise app_exc conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro conda-store-server-1 | await self.app(scope, receive_or_disconnect, send_no_error) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__ conda-store-server-1 | await self.app(scope, receive, send_wrapper) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/cors.py", line 85, in __call__ conda-store-server-1 | await self.app(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ conda-store-server-1 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app conda-store-server-1 | raise exc conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app conda-store-server-1 | await app(scope, receive, sender) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ conda-store-server-1 | await self.middleware_stack(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 735, in app conda-store-server-1 | await route.handle(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle conda-store-server-1 | await self.app(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 76, in app conda-store-server-1 | await wrap_app_handling_exceptions(app, request)(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app conda-store-server-1 | raise exc conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app conda-store-server-1 | await app(scope, receive, sender) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 73, in app conda-store-server-1 | response = await f(request) conda-store-server-1 | ^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app conda-store-server-1 | raw_response = await run_endpoint_function( conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/routing.py", line 214, in run_endpoint_function conda-store-server-1 | return await run_in_threadpool(dependant.call, **values) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool conda-store-server-1 | return await anyio.to_thread.run_sync(func, *args) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync conda-store-server-1 | return await get_async_backend().run_sync_in_worker_thread( conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread conda-store-server-1 | return await future conda-store-server-1 | ^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 943, in run conda-store-server-1 | result = context.run(func, *args) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/server/auth.py", line 523, in get_login_method conda-store-server-1 | return templates.TemplateResponse( conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 209, in TemplateResponse conda-store-server-1 | return _TemplateResponse( conda-store-server-1 | ^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 40, in __init__ conda-store-server-1 | content = template.render(context) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/jinja2/environment.py", line 1304, in render conda-store-server-1 | self.environment.handle_exception() conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/jinja2/environment.py", line 939, in handle_exception conda-store-server-1 | raise rewrite_traceback_stack(source=source) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/login.html", line 7, in top-level template code conda-store-server-1 | {% extends 'base.html' %} conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/base.html", line 33, in top-level template code conda-store-server-1 | {% include 'navigation.html' %} conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/templates/navigation.html", line 8, in top-level template code conda-store-server-1 | <a class="navbar-brand" href="{{ url_for('ui_list_environments') }}"> conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/templating.py", line 126, in url_for conda-store-server-1 | return request.url_for(name, **path_params) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/requests.py", line 186, in url_for conda-store-server-1 | url_path = url_path_provider.url_path_for(name, **path_params) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/routing.py", line 662, in url_path_for conda-store-server-1 | raise NoMatchFound(name, path_params) conda-store-server-1 | starlette.routing.NoMatchFound: No route exists for name "ui_list_environments" and params "". conda-store-server-1 | conda-store-server-1 | During handling of the above exception, another exception occurred: conda-store-server-1 | conda-store-server-1 | Traceback (most recent call last): conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi conda-store-server-1 | result = await app( # type: ignore[func-returns-value] conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__ conda-store-server-1 | await super().__call__(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ conda-store-server-1 | await self.middleware_stack(scope, receive, send) conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/starlette/middleware/errors.py", line 177, in __call__ conda-store-server-1 | response = await self.handler(request, exc) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/app.py", line 275, in exception_handler conda-store-server-1 | return await http_exception_handler(request, exc) conda-store-server-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conda-store-server-1 | File "/opt/conda/envs/conda-store-server/lib/python3.12/site-packages/conda_store_server/_internal/server/app.py", line 264, in http_exception_handler conda-store-server-1 | "message": exc.detail, conda-store-server-1 | ^^^^^^^^^^ conda-store-server-1 | AttributeError: 'NoMatchFound' object has no attribute 'detail'
This error looks like it is triggered from the auth class
conda-store/conda-store-server/conda_store_server/server/auth.py
Line 554 in 4ec0892
from the main branch of conda-store (2024.11.2)
No response
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Describe the bug
When running conda-store without the ui enabled auth no longer works. For example, given the following relevant config (notice the ui is turned off)
trying to login to conda store will produce a 500 error. The full error from the logs is shown below. Relevant part of the error:
Expected behavior
conda store auth functionality should not be tied to if the ui is enabled (eg. using the config option
c.CondaStoreServer.enable_ui
).How to Reproduce the problem?
To reproduce the problem launch conda-store with docker compose. You'll need the docker-compose.yml and condastore_config.py given by
docker-compose.yml
conda_store_config.py
Output
The full error message produced by the server is
This error looks like it is triggered from the auth class
conda-store/conda-store-server/conda_store_server/server/auth.py
Line 554 in 4ec0892
Versions and dependencies used.
from the main branch of conda-store (2024.11.2)
Anything else?
No response
The text was updated successfully, but these errors were encountered: