-
Notifications
You must be signed in to change notification settings - Fork 72
Closed
Labels
triage-neededNeeds assignment to the proper sub-teamNeeds assignment to the proper sub-team
Description
We use VS Code to develop with Dagster, and specifically use a VS Code launch configuration to start Dagster's local development web server and step debug through code. After the most recent debugpy update, the web server is unable to start listening for requests. However, if we run the command manually in our shell, the server starts without issues. Similarly, downgrading to the previous debugpy version (2025.0.1) fixes the issue.
Here is our .vscode/launch.json
file:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Dagster Web Server",
"type": "debugpy",
"request": "launch",
"module": "dagster",
"cwd": "/workspace",
"args": [
"dev"
],
"serverReadyAction": {
"pattern": "Serving dagster-webserver on http://127.0.0.1:([0-9]+)",
"action": "openExternally",
"uriFormat": "http://localhost:%s"
}
}
]
}
And here is the error we're seeing:
ethan@salmon-tarantula-95-copy-copy:/workspace/data-pipelines-general (main)$ /usr/bin/env /usr/local/bin/python /home/ethan/.vscode-server/extensions/ms-python.debugpy-2025.4.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher 52929 -- -m dagster dev
2025-03-06 22:25:43 +0000 - dagster.code_server - INFO - Starting Dagster code proxy server for module dagster_project in process 2148
2025-03-06 22:25:49 +0000 - dagster.code_server - INFO - Starting Dagster code server for module dagster_project in process 2196
2025-03-06 22:26:10 +0000 - dagster.builtin - INFO - Running dbt command: `dbt parse --quiet --target dev`.
INFO:dagster.builtin:Running dbt command: `dbt parse --quiet --target dev`.
2025-03-06 22:26:25 +0000 - dagster.builtin - INFO - Finished dbt command: `dbt parse --quiet --target dev`.
INFO:dagster.builtin:Finished dbt command: `dbt parse --quiet --target dev`.
2025-03-06 22:26:34 +0000 - dagster.code_server - INFO - Started Dagster code server for module dagster_project in process 2196
INFO:dagster.code_server:Started Dagster code server for module dagster_project in process 2196
2025-03-06 22:26:34 +0000 - dagster.code_server - INFO - Started Dagster code proxy server for module dagster_project in process 2148
2025-03-06 22:26:34 +0000 - dagster.code_server - INFO - Stopping server once all current RPC calls terminate or 60 seconds pass
2025-03-06 22:26:34 +0000 - dagster.code_server - INFO - Stopping server once all current RPC calls terminate or 60 seconds pass
INFO:dagster.code_server:Stopping server once all current RPC calls terminate or 60 seconds pass
2025-03-06 22:26:34 +0000 - dagster.code_server - INFO - Shutting down Dagster code server for module dagster_project in process 2196
INFO:dagster.code_server:Shutting down Dagster code server for module dagster_project in process 2196
2025-03-06 22:26:36 +0000 - dagster.code_server - INFO - Shutting down Dagster code proxy server for module dagster_project in process 2148
2025-03-06 22:26:37 +0000 - dagster - WARNING - /home/ethan/.local/lib/python3.10/site-packages/dagster/_core/workspace/context.py:799: UserWarning: Error loading repository location data_pipelines_general:Exception: gRPC server exited with return code 0 while starting up with the command: "/usr/local/bin/python -m dagster code-server start --socket /tmp/tmp5n9xzg2x --heartbeat --heartbeat-timeout 45 --fixed-server-id 7bb4839b-d2ee-45ce-b106-9e9e6b6d521d --log-level INFO --inject-env-vars-from-instance --instance-ref {"__class__": "InstanceRef", "compute_logs_data": {"__class__": "ConfigurableClassData", "class_name": "LocalComputeLogManager", "config_yaml": "base_dir: /home/ethan/dagster_home/storage\n", "module_name": "dagster.core.storage.local_compute_log_manager"}, "custom_instance_class_data": null, "event_storage_data": {"__class__": "ConfigurableClassData", "class_name": "SqliteEventLogStorage", "config_yaml": "base_dir: /home/ethan/dagster_home/history/runs/\n", "module_name": "dagster.core.storage.event_log"}, "local_artifact_storage_data": {"__class__": "ConfigurableClassData", "class_name": "LocalArtifactStorage", "config_yaml": "base_dir: /home/ethan/dagster_home\n", "module_name": "dagster.core.storage.root"}, "run_coordinator_data": {"__class__": "ConfigurableClassData", "class_name": "QueuedRunCoordinator", "config_yaml": "max_concurrent_runs: 2\n", "module_name": "dagster.core.run_coordinator"}, "run_launcher_data": {"__class__": "ConfigurableClassData", "class_name": "DefaultRunLauncher", "config_yaml": "{}\n", "module_name": "dagster"}, "run_storage_data": {"__class__": "ConfigurableClassData", "class_name": "SqliteRunStorage", "config_yaml": "base_dir: /home/ethan/dagster_home/history/\n", "module_name": "dagster.core.storage.runs"}, "schedule_storage_data": {"__class__": "ConfigurableClassData", "class_name": "SqliteScheduleStorage", "config_yaml": "base_dir: /home/ethan/dagster_home/schedules\n", "module_name": "dagster.core.storage.schedules"}, "scheduler_data": {"__class__": "ConfigurableClassData", "class_name": "DagsterDaemonScheduler", "config_yaml": "{}\n", "module_name": "dagster.core.scheduler"}, "secrets_loader_data": null, "settings": {}, "storage_data": {"__class__": "ConfigurableClassData", "class_name": "DagsterSqliteStorage", "config_yaml": "base_dir: /home/ethan/dagster_home\n", "module_name": "dagster.core.storage.sqlite_storage"}} --location-name data_pipelines_general -m dagster_project -d /workspace/data-pipelines-general"
Stack Trace:
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_core/remote_representation/grpc_server_registry.py", line 190, in _get_grpc_endpoint
server_process = GrpcServerProcess(
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_grpc/server.py", line 1537, in __init__
self.start_server_process()
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_grpc/server.py", line 1574, in start_server_process
server_process = open_server_process(
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_grpc/server.py", line 1438, in open_server_process
wait_for_grpc_server(
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_grpc/server.py", line 1343, in wait_for_grpc_server
raise Exception(
warnings.warn(f"Error loading repository location {location_name}:{error.to_string()}")
Traceback (most recent call last):
File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/ethan/.vscode-server/extensions/ms-python.debugpy-2025.4.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher/../../debugpy/__main__.py", line 71, in <module>
cli.main()
File "/home/ethan/.vscode-server/extensions/ms-python.debugpy-2025.4.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 501, in main
run()
File "/home/ethan/.vscode-server/extensions/ms-python.debugpy-2025.4.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 384, in run_module
run_module_as_main(options.target, alter_argv=True)
File "/home/ethan/.vscode-server/extensions/ms-python.debugpy-2025.4.0-linux-x64/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 228, in _run_module_as_main
return _run_code(code, main_globals, None, "__main__", mod_spec)
File "/home/ethan/.vscode-server/extensions/ms-python.debugpy-2025.4.0-linux-x64/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 118, in _run_code
exec(code, run_globals)
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/__main__.py", line 3, in <module>
main()
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_cli/__init__.py", line 50, in main
cli(auto_envvar_prefix=ENV_PREFIX)
File "/home/ethan/.local/lib/python3.10/site-packages/click/core.py", line 1161, in __call__
return self.main(*args, **kwargs)
File "/home/ethan/.local/lib/python3.10/site-packages/click/core.py", line 1082, in main
rv = self.invoke(ctx)
File "/home/ethan/.local/lib/python3.10/site-packages/click/core.py", line 1697, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ethan/.local/lib/python3.10/site-packages/click/core.py", line 1443, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/ethan/.local/lib/python3.10/site-packages/click/core.py", line 788, in invoke
return __callback(*args, **kwargs)
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_cli/dev.py", line 155, in dev_command
with _optionally_create_temp_workspace(
File "/usr/local/lib/python3.10/contextlib.py", line 135, in __enter__
return next(self.gen)
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_cli/dev.py", line 266, in _optionally_create_temp_workspace
with _temp_grpc_socket_workspace_file(context) as workspace_file:
File "/usr/local/lib/python3.10/contextlib.py", line 135, in __enter__
return next(self.gen)
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_cli/dev.py", line 243, in _temp_grpc_socket_workspace_file
temp_file.write(yaml.dump({"load_from": context.get_code_server_specs()}))
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_core/workspace/context.py", line 679, in get_code_server_specs
grpc_endpoint = self._grpc_server_registry.get_grpc_endpoint(origin)
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_core/remote_representation/grpc_server_registry.py", line 157, in get_grpc_endpoint
return self._get_grpc_endpoint(code_location_origin)
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_core/remote_representation/grpc_server_registry.py", line 222, in _get_grpc_endpoint
raise DagsterUserCodeProcessError(
dagster._core.errors.DagsterUserCodeProcessError: Exception: gRPC server exited with return code 0 while starting up with the command: "/usr/local/bin/python -m dagster code-server start --socket /tmp/tmp5n9xzg2x --heartbeat --heartbeat-timeout 45 --fixed-server-id 7bb4839b-d2ee-45ce-b106-9e9e6b6d521d --log-level INFO --inject-env-vars-from-instance --instance-ref {"__class__": "InstanceRef", "compute_logs_data": {"__class__": "ConfigurableClassData", "class_name": "LocalComputeLogManager", "config_yaml": "base_dir: /home/ethan/dagster_home/storage\n", "module_name": "dagster.core.storage.local_compute_log_manager"}, "custom_instance_class_data": null, "event_storage_data": {"__class__": "ConfigurableClassData", "class_name": "SqliteEventLogStorage", "config_yaml": "base_dir: /home/ethan/dagster_home/history/runs/\n", "module_name": "dagster.core.storage.event_log"}, "local_artifact_storage_data": {"__class__": "ConfigurableClassData", "class_name": "LocalArtifactStorage", "config_yaml": "base_dir: /home/ethan/dagster_home\n", "module_name": "dagster.core.storage.root"}, "run_coordinator_data": {"__class__": "ConfigurableClassData", "class_name": "QueuedRunCoordinator", "config_yaml": "max_concurrent_runs: 2\n", "module_name": "dagster.core.run_coordinator"}, "run_launcher_data": {"__class__": "ConfigurableClassData", "class_name": "DefaultRunLauncher", "config_yaml": "{}\n", "module_name": "dagster"}, "run_storage_data": {"__class__": "ConfigurableClassData", "class_name": "SqliteRunStorage", "config_yaml": "base_dir: /home/ethan/dagster_home/history/\n", "module_name": "dagster.core.storage.runs"}, "schedule_storage_data": {"__class__": "ConfigurableClassData", "class_name": "SqliteScheduleStorage", "config_yaml": "base_dir: /home/ethan/dagster_home/schedules\n", "module_name": "dagster.core.storage.schedules"}, "scheduler_data": {"__class__": "ConfigurableClassData", "class_name": "DagsterDaemonScheduler", "config_yaml": "{}\n", "module_name": "dagster.core.scheduler"}, "secrets_loader_data": null, "settings": {}, "storage_data": {"__class__": "ConfigurableClassData", "class_name": "DagsterSqliteStorage", "config_yaml": "base_dir: /home/ethan/dagster_home\n", "module_name": "dagster.core.storage.sqlite_storage"}} --location-name data_pipelines_general -m dagster_project -d /workspace/data-pipelines-general"
Stack Trace:
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_core/remote_representation/grpc_server_registry.py", line 190, in _get_grpc_endpoint
server_process = GrpcServerProcess(
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_grpc/server.py", line 1537, in __init__
self.start_server_process()
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_grpc/server.py", line 1574, in start_server_process
server_process = open_server_process(
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_grpc/server.py", line 1438, in open_server_process
wait_for_grpc_server(
File "/home/ethan/.local/lib/python3.10/site-packages/dagster/_grpc/server.py", line 1343, in wait_for_grpc_server
raise Exception(
Any idea what might be happening here between versions?
Metadata
Metadata
Assignees
Labels
triage-neededNeeds assignment to the proper sub-teamNeeds assignment to the proper sub-team