[Bug]: cannot connect runtime
Is there an existing issue for the same bug? (If one exists, thumbs up or comment on the issue instead).
- [x] I have checked the existing issues.
Describe the bug and reproduction steps
when I start openHands, then stuck with 'Waiting for runtime to start...' , I cannot chat with openHands
OpenHands Installation
Docker command in README
OpenHands Version
0.49
Model Name
DeepseekV3
Operating System
Mac
Logs, Errors, Screenshots, and Additional Context
2025-07-17 11:20:51 Starting OpenHands... 2025-07-17 11:20:51 Running OpenHands as root 2025-07-17 11:20:56 03:20:56 - openhands:INFO: server_config.py:53 - Using config class None 2025-07-17 11:20:56 INFO: Started server process [9] 2025-07-17 11:20:56 INFO: Waiting for application startup. 2025-07-17 11:20:56 INFO: Application startup complete. 2025-07-17 11:20:56 INFO: Uvicorn running on http://0.0.0.0:3000 (Press CTRL+C to quit) 2025-07-17 11:21:20 INFO: 172.17.0.1:57826 - "GET / HTTP/1.1" 200 OK 2025-07-17 11:21:20 INFO: 172.17.0.1:57826 - "GET /locales/zh-CN/translation.json HTTP/1.1" 200 OK 2025-07-17 11:21:20 INFO: 172.17.0.1:57828 - "GET /locales/en/translation.json HTTP/1.1" 200 OK 2025-07-17 11:21:20 INFO: 172.17.0.1:57828 - "GET /api/options/config HTTP/1.1" 200 OK 2025-07-17 11:21:20 INFO: 172.17.0.1:57828 - "GET /api/options/config HTTP/1.1" 200 OK 2025-07-17 11:21:20 INFO: 172.17.0.1:57828 - "GET /api/settings HTTP/1.1" 200 OK 2025-07-17 11:21:28 INFO: 172.17.0.1:63012 - "GET /api/options/models HTTP/1.1" 200 OK 2025-07-17 11:21:28 INFO: 172.17.0.1:63012 - "GET /api/options/agents HTTP/1.1" 200 OK 2025-07-17 11:21:28 INFO: 172.17.0.1:63012 - "GET /api/options/security-analyzers HTTP/1.1" 200 OK 2025-07-17 11:21:36 INFO: 172.17.0.1:62274 - "GET /api/secrets HTTP/1.1" 200 OK 2025-07-17 11:21:53 03:21:53 - openhands:INFO: manage_conversations.py:119 - initializing_new_conversation:repository=None git_provider=None selected_branch=None initial_user_msg=None image_urls=None replay_json=None suggested_task=None conversation_instructions=None 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:48 - Creating conversation 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:56 - Loading settings 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:59 - Settings loaded 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:87 - Loading conversation store 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:89 - ServerConversation store loaded 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:96 - New conversation ID: 19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:106 - Saving metadata for conversation 19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:120 - Starting agent loop for conversation 19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:53 03:21:53 - openhands:INFO: standalone_conversation_manager.py:282 - maybe_start_agent_loop:19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:53 03:21:53 - openhands:INFO: standalone_conversation_manager.py:298 - starting_agent_loop:19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:53 03:21:53 - openhands:INFO: conversation_service.py:141 - Finished initializing conversation 19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:53 03:21:53 - openhands:WARNING: mcp_config.py:186 - No search engine API key found, skipping search engine 2025-07-17 11:21:53 03:21:53 - openhands:INFO: session.py:180 - Enabling pipeline condenser with: browser_output_masking(attention_window=2), llm(model="deepseek", base_url="https://api.deepseek.com", keep_first=4, max_size=80) 2025-07-17 11:21:53 INFO: 172.17.0.1:57682 - "POST /api/conversations HTTP/1.1" 200 OK 2025-07-17 11:21:53 INFO: 172.17.0.1:57682 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:21:54 03:21:54 - openhands:INFO: docker_runtime.py:165 - [runtime 19262f387c3b4353a9ad985c23674636] Starting runtime with image: docker.all-hands.dev/all-hands-ai/runtime:0.49-nikolaik 2025-07-17 11:21:54 03:21:54 - openhands:INFO: docker_runtime.py:364 - [runtime 19262f387c3b4353a9ad985c23674636] Starting server with command: ['/openhands/micromamba/bin/micromamba', 'run', '-n', 'openhands', 'poetry', 'run', 'python', '-u', '-m', 'openhands.runtime.action_execution_server', '39545', '--working-dir', '/workspace', '--plugins', 'agent_skills', 'jupyter', 'vscode', '--username', 'root', '--user-id', '0'] 2025-07-17 11:21:56 INFO: 172.17.0.1:62922 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:21:56 INFO: 172.17.0.1:62936 - "WebSocket /socket.io/?latest_event_id=-1&conversation_id=19262f387c3b4353a9ad985c23674636&providers_set=&session_api_key=null&EIO=4&transport=websocket" [accepted] 2025-07-17 11:21:56 INFO: connection open 2025-07-17 11:21:56 03:21:56 - openhands:INFO: listen_socket.py:38 - sio:connect: lSyFW6qxGmLX8ZRsAAAB 2025-07-17 11:21:56 03:21:56 - openhands:INFO: listen_socket.py:49 - Socket request for conversation 19262f387c3b4353a9ad985c23674636 with connection_id lSyFW6qxGmLX8ZRsAAAB 2025-07-17 11:21:56 03:21:56 - openhands:INFO: listen_socket.py:74 - User None is allowed to connect to conversation 19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:56 03:21:56 - openhands:INFO: listen_socket.py:88 - Replaying event stream for conversation 19262f387c3b4353a9ad985c23674636 with connection_id lSyFW6qxGmLX8ZRsAAAB... 2025-07-17 11:21:56 03:21:56 - openhands:INFO: listen_socket.py:116 - Finished replaying event stream for conversation 19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:56 03:21:56 - openhands:INFO: conversation_service.py:188 - Git provider scaffold: {} 2025-07-17 11:21:56 03:21:56 - openhands:INFO: standalone_conversation_manager.py:152 - join_conversation:19262f387c3b4353a9ad985c23674636:lSyFW6qxGmLX8ZRsAAAB 2025-07-17 11:21:56 03:21:56 - openhands:INFO: standalone_conversation_manager.py:282 - maybe_start_agent_loop:19262f387c3b4353a9ad985c23674636 2025-07-17 11:21:56 03:21:56 - openhands:INFO: listen_socket.py:134 - Successfully joined conversation 19262f387c3b4353a9ad985c23674636 with connection_id lSyFW6qxGmLX8ZRsAAAB 2025-07-17 11:21:59 INFO: 172.17.0.1:62922 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:22:02 INFO: 172.17.0.1:62948 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:22:47 docker ps 2025-07-17 11:23:27 INFO: 172.17.0.1:56734 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:23:30 INFO: 172.17.0.1:56734 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:23:33 INFO: 172.17.0.1:56738 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:24:09 INFO: 172.17.0.1:59772 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:24:12 INFO: 172.17.0.1:59778 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:24:15 INFO: 172.17.0.1:59778 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:24:18 INFO: 172.17.0.1:60914 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:25:27 INFO: 172.17.0.1:57798 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:25:30 INFO: 172.17.0.1:57798 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:25:33 INFO: 172.17.0.1:57812 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:25:36 INFO: 172.17.0.1:60262 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:25:39 INFO: 172.17.0.1:60262 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:32:53 Starting OpenHands... 2025-07-17 11:32:53 Running OpenHands as root 2025-07-17 11:32:56 03:32:56 - openhands:INFO: server_config.py:53 - Using config class None 2025-07-17 11:32:56 INFO: Started server process [8] 2025-07-17 11:32:56 INFO: Waiting for application startup. 2025-07-17 11:32:56 INFO: Application startup complete. 2025-07-17 11:32:56 INFO: Uvicorn running on http://0.0.0.0:3000 (Press CTRL+C to quit) 2025-07-17 11:32:57 INFO: 172.17.0.1:58844 - "WebSocket /socket.io/?latest_event_id=0&conversation_id=19262f387c3b4353a9ad985c23674636&providers_set=&session_api_key=null&EIO=4&transport=websocket" [accepted] 2025-07-17 11:32:57 INFO: connection open 2025-07-17 11:32:57 03:32:57 - openhands:INFO: listen_socket.py:38 - sio:connect: XmAerM1qUUzbO-UAAAAB 2025-07-17 11:32:57 03:32:57 - openhands:INFO: listen_socket.py:49 - Socket request for conversation 19262f387c3b4353a9ad985c23674636 with connection_id XmAerM1qUUzbO-UAAAAB 2025-07-17 11:32:57 03:32:57 - openhands:INFO: listen_socket.py:74 - User None is allowed to connect to conversation 19262f387c3b4353a9ad985c23674636 2025-07-17 11:32:57 03:32:57 - openhands:INFO: listen_socket.py:88 - Replaying event stream for conversation 19262f387c3b4353a9ad985c23674636 with connection_id XmAerM1qUUzbO-UAAAAB... 2025-07-17 11:32:57 03:32:57 - openhands:INFO: listen_socket.py:116 - Finished replaying event stream for conversation 19262f387c3b4353a9ad985c23674636 2025-07-17 11:32:57 03:32:57 - openhands:INFO: conversation_service.py:188 - Git provider scaffold: {} 2025-07-17 11:32:57 03:32:57 - openhands:INFO: standalone_conversation_manager.py:152 - join_conversation:19262f387c3b4353a9ad985c23674636:XmAerM1qUUzbO-UAAAAB 2025-07-17 11:32:57 03:32:57 - openhands:INFO: standalone_conversation_manager.py:282 - maybe_start_agent_loop:19262f387c3b4353a9ad985c23674636 2025-07-17 11:32:57 03:32:57 - openhands:INFO: standalone_conversation_manager.py:298 - starting_agent_loop:19262f387c3b4353a9ad985c23674636 2025-07-17 11:32:57 03:32:57 - openhands:INFO: listen_socket.py:134 - Successfully joined conversation 19262f387c3b4353a9ad985c23674636 with connection_id XmAerM1qUUzbO-UAAAAB 2025-07-17 11:32:57 03:32:57 - openhands:WARNING: mcp_config.py:186 - No search engine API key found, skipping search engine 2025-07-17 11:32:57 03:32:57 - openhands:INFO: session.py:180 - Enabling pipeline condenser with: browser_output_masking(attention_window=2), llm(model="deepseek", base_url="https://api.deepseek.com", keep_first=4, max_size=80) 2025-07-17 11:32:58 03:32:58 - openhands:INFO: docker_runtime.py:165 - [runtime 19262f387c3b4353a9ad985c23674636] Starting runtime with image: docker.all-hands.dev/all-hands-ai/runtime:0.49-nikolaik 2025-07-17 11:32:59 03:32:59 - openhands:INFO: docker_runtime.py:364 - [runtime 19262f387c3b4353a9ad985c23674636] Starting server with command: ['/openhands/micromamba/bin/micromamba', 'run', '-n', 'openhands', 'poetry', 'run', 'python', '-u', '-m', 'openhands.runtime.action_execution_server', '39362', '--working-dir', '/workspace', '--plugins', 'agent_skills', 'jupyter', 'vscode', '--username', 'root', '--user-id', '0'] 2025-07-17 11:33:11 INFO: 172.17.0.1:59496 - "GET /api/options/config HTTP/1.1" 200 OK 2025-07-17 11:33:11 INFO: 172.17.0.1:59500 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:33:14 INFO: 172.17.0.1:59508 - "GET /api/conversations/19262f387c3b4353a9ad985c23674636 HTTP/1.1" 200 OK 2025-07-17 11:33:15 03:33:15 - openhands:INFO: listen_socket.py:157 - sio:disconnect:XmAerM1qUUzbO-UAAAAB 2025-07-17 11:33:15 03:33:15 - openhands:INFO: standalone_conversation_manager.py:371 - disconnect_from_session:XmAerM1qUUzbO-UAAAAB:19262f387c3b4353a9ad985c23674636 2025-07-17 11:33:15 INFO: 172.17.0.1:59508 - "GET /api/settings HTTP/1.1" 200 OK 2025-07-17 11:33:15 INFO: connection closed 2025-07-17 11:33:16 03:33:16 - openhands:INFO: manage_conversations.py:119 - initializing_new_conversation:repository=None git_provider=None selected_branch=None initial_user_msg=None image_urls=None replay_json=None suggested_task=None conversation_instructions=None 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:48 - Creating conversation 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:56 - Loading settings 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:59 - Settings loaded 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:87 - Loading conversation store 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:89 - ServerConversation store loaded 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:96 - New conversation ID: 4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:106 - Saving metadata for conversation 4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:120 - Starting agent loop for conversation 4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:16 03:33:16 - openhands:INFO: standalone_conversation_manager.py:282 - maybe_start_agent_loop:4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:16 03:33:16 - openhands:INFO: standalone_conversation_manager.py:298 - starting_agent_loop:4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:16 03:33:16 - openhands:INFO: conversation_service.py:141 - Finished initializing conversation 4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:16 03:33:16 - openhands:WARNING: mcp_config.py:186 - No search engine API key found, skipping search engine 2025-07-17 11:33:16 03:33:16 - openhands:INFO: session.py:180 - Enabling pipeline condenser with: browser_output_masking(attention_window=2), llm(model="deepseek", base_url="https://api.deepseek.com", keep_first=4, max_size=80) 2025-07-17 11:33:16 INFO: 172.17.0.1:64264 - "POST /api/conversations HTTP/1.1" 200 OK 2025-07-17 11:33:16 INFO: 172.17.0.1:64264 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:33:17 03:33:17 - openhands:INFO: docker_runtime.py:165 - [runtime 4a713fb853e44a6fb9d5568a9d085b75] Starting runtime with image: docker.all-hands.dev/all-hands-ai/runtime:0.49-nikolaik 2025-07-17 11:33:17 03:33:17 - openhands:INFO: docker_runtime.py:364 - [runtime 4a713fb853e44a6fb9d5568a9d085b75] Starting server with command: ['/openhands/micromamba/bin/micromamba', 'run', '-n', 'openhands', 'poetry', 'run', 'python', '-u', '-m', 'openhands.runtime.action_execution_server', '30932', '--working-dir', '/workspace', '--plugins', 'agent_skills', 'jupyter', 'vscode', '--username', 'root', '--user-id', '0'] 2025-07-17 11:33:19 INFO: 172.17.0.1:64264 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:33:19 INFO: 172.17.0.1:64272 - "WebSocket /socket.io/?latest_event_id=-1&conversation_id=4a713fb853e44a6fb9d5568a9d085b75&providers_set=&session_api_key=null&EIO=4&transport=websocket" [accepted] 2025-07-17 11:33:19 INFO: connection open 2025-07-17 11:33:19 03:33:19 - openhands:INFO: listen_socket.py:38 - sio:connect: LqkzUe82LjN3DLz8AAAD 2025-07-17 11:33:19 03:33:19 - openhands:INFO: listen_socket.py:49 - Socket request for conversation 4a713fb853e44a6fb9d5568a9d085b75 with connection_id LqkzUe82LjN3DLz8AAAD 2025-07-17 11:33:19 03:33:19 - openhands:INFO: listen_socket.py:74 - User None is allowed to connect to conversation 4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:19 03:33:19 - openhands:INFO: listen_socket.py:88 - Replaying event stream for conversation 4a713fb853e44a6fb9d5568a9d085b75 with connection_id LqkzUe82LjN3DLz8AAAD... 2025-07-17 11:33:19 03:33:19 - openhands:INFO: listen_socket.py:116 - Finished replaying event stream for conversation 4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:19 03:33:19 - openhands:INFO: conversation_service.py:188 - Git provider scaffold: {} 2025-07-17 11:33:19 03:33:19 - openhands:INFO: standalone_conversation_manager.py:152 - join_conversation:4a713fb853e44a6fb9d5568a9d085b75:LqkzUe82LjN3DLz8AAAD 2025-07-17 11:33:19 03:33:19 - openhands:INFO: standalone_conversation_manager.py:282 - maybe_start_agent_loop:4a713fb853e44a6fb9d5568a9d085b75 2025-07-17 11:33:19 03:33:19 - openhands:INFO: listen_socket.py:134 - Successfully joined conversation 4a713fb853e44a6fb9d5568a9d085b75 with connection_id LqkzUe82LjN3DLz8AAAD 2025-07-17 11:33:22 INFO: 172.17.0.1:64288 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:33:25 INFO: 172.17.0.1:64288 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:33:28 INFO: 172.17.0.1:62982 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:33:32 INFO: 172.17.0.1:62986 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:34:53 INFO: 172.17.0.1:59098 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:34:56 INFO: 172.17.0.1:55548 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:35:00 INFO: 172.17.0.1:55548 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:35:03 INFO: 172.17.0.1:55558 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:35:03 03:35:03 - openhands:INFO: standalone_conversation_manager.py:138 - ServerConversation 4a713fb853e44a6fb9d5568a9d085b75 connected in 0.005021333694458008 seconds 2025-07-17 11:35:03 INFO: 172.17.0.1:55558 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75/vscode-url HTTP/1.1" 200 OK 2025-07-17 11:35:06 INFO: 172.17.0.1:55558 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:35:09 INFO: 172.17.0.1:64326 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:36:11 INFO: 172.17.0.1:62774 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:42:27 INFO: 172.17.0.1:63636 - "GET /api/options/config HTTP/1.1" 200 OK 2025-07-17 11:42:27 INFO: 172.17.0.1:63646 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:42:30 INFO: 172.17.0.1:63660 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:43:00 INFO: 172.17.0.1:65396 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:43:24 INFO: 172.17.0.1:55114 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK 2025-07-17 11:43:27 INFO: 172.17.0.1:55114 - "GET /api/conversations/4a713fb853e44a6fb9d5568a9d085b75 HTTP/1.1" 200 OK
No response
When you start the conversation, if you look in your Docker Desktop, do you see an openhands-runtime container? Is it running?
When you start the conversation, if you look in your Docker Desktop, do you see an openhands-runtime container? Is it running?
When you start a conversation, you should see a openhands-runtime container pop up soon after.
In your openhands-app container logs do you see any errors after this:
Starting runtime with image: docker.all-hands.dev/all-hands-ai/runtime:0.49-nikolaik
In your openhands-app container logs do you see any errors after this:
Starting runtime with image: docker.all-hands.dev/all-hands-ai/runtime:0.49-nikolaik
this time openhands-app and openhands-runtime all running
there is error in openhands-app
2025-07-18 16:18:30 INFO: 172.17.0.1:64028 - "GET /api/conversations/f50e651443eb48a7849167cc222a3958 HTTP/1.1" 200 OK
2025-07-18 16:18:33 08:18:33 - openhands:ERROR: agent_session.py:214 - Agent session start failed in 122.83331108093262s
2025-07-18 16:18:33 08:18:33 - openhands:ERROR: session.py:237 - Error creating agent_session: [Errno 111] Connection refused
2025-07-18 16:18:33 Traceback (most recent call last):
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions
2025-07-18 16:18:33 yield
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 250, in handle_request
2025-07-18 16:18:33 resp = self._pool.handle_request(req)
2025-07-18 16:18:33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 256, in handle_request
2025-07-18 16:18:33 raise exc from None
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 236, in handle_request
2025-07-18 16:18:33 response = connection.handle_request(
2025-07-18 16:18:33 ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http_proxy.py", line 206, in handle_request
2025-07-18 16:18:33 return self._connection.handle_request(proxy_request)
2025-07-18 16:18:33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 101, in handle_request
2025-07-18 16:18:33 raise exc
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 78, in handle_request
2025-07-18 16:18:33 stream = self._connect(request)
2025-07-18 16:18:33 ^^^^^^^^^^^^^^^^^^^^^^
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 124, in _connect
2025-07-18 16:18:33 stream = self._network_backend.connect_tcp(**kwargs)
2025-07-18 16:18:33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpcore/_backends/sync.py", line 207, in connect_tcp
2025-07-18 16:18:33 with map_exceptions(exc_map):
2025-07-18 16:18:33 ^^^^^^^^^^^^^^^^^^^^^^^
2025-07-18 16:18:33 File "/usr/local/lib/python3.12/contextlib.py", line 158, in exit
2025-07-18 16:18:33 self.gen.throw(value)
2025-07-18 16:18:33 File "/app/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
2025-07-18 16:18:33 raise to_exc(exc) from exc
2025-07-18 16:18:33 httpcore.ConnectError: [Errno 111] Connection refused
2025-07-18 16:18:33
2025-07-18 16:18:33 The above exception was the direct cause of the following exception:
2025-07-18 16:18:33
2025-07-18 16:18:33 Traceback (most recent call last):
2025-07-18 16:18:33 File "/app/openhands/server/session/session.py", line 203, in initialize_agent
2025-07-18 16:18:33 await self.agent_session.start(
2025-07-18 16:18:33 File "/app/openhands/server/session/agent_session.py", line 131, in start
2025-07-18 16:18:33 runtime_connected = await self._create_runtime(
2025-07-18 16:18:33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-18 16:18:33 File "/app/openhands/server/session/agent_session.py", line 376, in _create_runtime
2025-07-18 16:18:33 await self.runtime.connect()
2025-07-18 16:18:33 File "/app/openhands/runtime/impl/docker/docker_runtime.py", line 183, in connect
2025-07-18 16:18:33 await call_sync_from_async(self.wait_until_alive)
2025-07-18 16:18:33 File "/app/openhands/utils/async_utils.py", line 18, in call_sync_from_async
2025-07-18 16:18:33 result = await coro
2025-07-18 16:18:33 ^^^^^^^^^^
2025-07-18 16:18:33 File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
2025-07-18 16:18:33 result = self.fn(*self.args, **self.kwargs)
2025-07-18 16:18:33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-18 16:18:33 File "/app/openhands/utils/async_utils.py", line 17, in
@llamantino sorry for the ping. You're pretty good with these connection errors. Anything jumping out at you?
I saw another issue where the user had trouble downloading the runtime image. Since I don't see the Container started message here, I suppose it might still be a download issue.
Did docker pull docker.all-hands.dev/all-hands-ai/runtime:0.48-nikolaik complete successfully?
I am experiencing the same / a similar issue, where the page at http://127.0.0.1:3000/conversations/0ec7f644fbff4044a88a0d3c17b2c428 is stuck at "Waiting for runtime to start...". Macbook m1, following the docker guide to run locally: https://docs.all-hands.dev/usage/local-setup
- docker pull
- docker run
- connect openai API key
- connect Github
- select a Github repo
2 docker containers are running as expected.
Here are the logs:
0.49: Pulling from all-hands-ai/openhands Digest: sha256:bedc0dd4a4f8e446abf414eb869de5048d5b8d7ff08810ee3e8a033b88321482 Status: Image is up to date for docker.all-hands.dev/all-hands-ai/openhands:0.49 Starting OpenHands... Running OpenHands as root 06:52:25 - openhands:INFO: server_config.py:53 - Using config class None INFO: Started server process [11] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:3000 (Press CTRL+C to quit) INFO: 172.17.0.1:60030 - "GET / HTTP/1.1" 200 OK INFO: 172.17.0.1:60072 - "GET /favicon.ico HTTP/1.1" 200 OK INFO: 172.17.0.1:60078 - "GET /api/options/config HTTP/1.1" 200 OK INFO: 172.17.0.1:60076 - "GET /locales/en/translation.json HTTP/1.1" 200 OK INFO: 172.17.0.1:60072 - "GET /api/options/config HTTP/1.1" 200 OK INFO: 172.17.0.1:60072 - "GET /api/settings HTTP/1.1" 200 OK INFO: 172.17.0.1:60072 - "GET /api/user/info HTTP/1.1" 200 OK INFO: 172.17.0.1:60078 - "GET /api/user/repositories?sort=pushed HTTP/1.1" 200 OK INFO: 172.17.0.1:60082 - "GET /api/user/suggested-tasks HTTP/1.1" 200 OK INFO: 172.17.0.1:60094 - "GET /api/user/repository/branches?repository=joostvunderink%2Fasl-server HTTP/1.1" 200 OK 06:53:19 - openhands:INFO: manage_conversations.py:119 - initializing_new_conversation:repository='joostvunderink/asl-server' git_provider=<ProviderType.GITHUB: 'github'> selected_branch='master' initial_user_msg=None image_urls=None replay_json=None suggested_task=None conversation_instructions=None 06:53:19 - openhands:INFO: conversation_service.py:48 - Creating conversation 06:53:19 - openhands:INFO: conversation_service.py:56 - Loading settings 06:53:19 - openhands:INFO: conversation_service.py:59 - Settings loaded 06:53:19 - openhands:INFO: conversation_service.py:87 - Loading conversation store 06:53:19 - openhands:INFO: conversation_service.py:89 - ServerConversation store loaded 06:53:19 - openhands:INFO: conversation_service.py:96 - New conversation ID: 0ec7f644fbff4044a88a0d3c17b2c428 06:53:19 - openhands:INFO: conversation_service.py:106 - Saving metadata for conversation 0ec7f644fbff4044a88a0d3c17b2c428 06:53:19 - openhands:INFO: conversation_service.py:120 - Starting agent loop for conversation 0ec7f644fbff4044a88a0d3c17b2c428 06:53:19 - openhands:INFO: standalone_conversation_manager.py:282 - maybe_start_agent_loop:0ec7f644fbff4044a88a0d3c17b2c428 06:53:19 - openhands:INFO: standalone_conversation_manager.py:298 - starting_agent_loop:0ec7f644fbff4044a88a0d3c17b2c428 06:53:19 - openhands:INFO: conversation_service.py:141 - Finished initializing conversation 0ec7f644fbff4044a88a0d3c17b2c428 06:53:19 - openhands:WARNING: mcp_config.py:186 - No search engine API key found, skipping search engine 06:53:19 - openhands:INFO: session.py:180 - Enabling pipeline condenser with: browser_output_masking(attention_window=2), llm(model="openai/o4-mini", base_url="None", keep_first=4, max_size=80) INFO: 172.17.0.1:60094 - "POST /api/conversations HTTP/1.1" 200 OK INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK 06:53:21 - openhands:INFO: docker_runtime.py:165 - [runtime 0ec7f644fbff4044a88a0d3c17b2c428] Starting runtime with image: docker.all-hands.dev/all-hands-ai/runtime:0.49-nikolaik 06:53:21 - openhands:INFO: docker_runtime.py:364 - [runtime 0ec7f644fbff4044a88a0d3c17b2c428] Starting server with command: ['/openhands/micromamba/bin/micromamba', 'run', '-n', 'openhands', 'poetry', 'run', 'python', '-u', '-m', 'openhands.runtime.action_execution_server', '38354', '--working-dir', '/workspace', '--plugins', 'agent_skills', 'jupyter', 'vscode', '--username', 'root', '--user-id', '0'] 06:53:21 - openhands:INFO: docker_runtime.py:169 - [runtime 0ec7f644fbff4044a88a0d3c17b2c428] Container started: openhands-runtime-0ec7f644fbff4044a88a0d3c17b2c428. VSCode URL: None 06:53:21 - openhands:INFO: docker_runtime.py:180 - [runtime 0ec7f644fbff4044a88a0d3c17b2c428] Waiting for client to become ready at http://host.docker.internal:38354... INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60104 - "WebSocket /socket.io/?latest_event_id=-1&conversation_id=0ec7f644fbff4044a88a0d3c17b2c428&providers_set=github&session_api_key=null&EIO=4&transport=websocket" [accepted] INFO: connection open 06:53:23 - openhands:INFO: listen_socket.py:38 - sio:connect: HOSk0pHU2Yjp8hl5AAAB 06:53:23 - openhands:INFO: listen_socket.py:49 - Socket request for conversation 0ec7f644fbff4044a88a0d3c17b2c428 with connection_id HOSk0pHU2Yjp8hl5AAAB 06:53:23 - openhands:INFO: listen_socket.py:74 - User None is allowed to connect to conversation 0ec7f644fbff4044a88a0d3c17b2c428 06:53:23 - openhands:INFO: listen_socket.py:88 - Replaying event stream for conversation 0ec7f644fbff4044a88a0d3c17b2c428 with connection_id HOSk0pHU2Yjp8hl5AAAB... 06:53:23 - openhands:INFO: listen_socket.py:116 - Finished replaying event stream for conversation 0ec7f644fbff4044a88a0d3c17b2c428 06:53:23 - openhands:INFO: conversation_service.py:188 - Git provider scaffold: {<ProviderType.GITHUB: 'github'>: ProviderToken(token=None, user_id=None, host=None)} 06:53:23 - openhands:INFO: standalone_conversation_manager.py:152 - join_conversation:0ec7f644fbff4044a88a0d3c17b2c428:HOSk0pHU2Yjp8hl5AAAB 06:53:23 - openhands:INFO: standalone_conversation_manager.py:282 - maybe_start_agent_loop:0ec7f644fbff4044a88a0d3c17b2c428 06:53:23 - openhands:INFO: listen_socket.py:134 - Successfully joined conversation 0ec7f644fbff4044a88a0d3c17b2c428 with connection_id HOSk0pHU2Yjp8hl5AAAB INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60094 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60172 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60172 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60172 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60172 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60172 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK INFO: 172.17.0.1:60172 - "GET /api/conversations/0ec7f644fbff4044a88a0d3c17b2c428 HTTP/1.1" 200 OK 06:55:32 - openhands:ERROR: agent_session.py:214 - Agent session start failed in 132.14123106002808s 06:55:32 - openhands:ERROR: session.py:237 - Error creating agent_session: RetryError[<Future at 0x40501ceae0 state=finished raised RemoteProtocolError>] Traceback (most recent call last): File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions yield File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 250, in handle_request resp = self._pool.handle_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 256, in handle_request raise exc from None File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 236, in handle_request response = connection.handle_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 103, in handle_request return self._connection.handle_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 136, in handle_request raise exc File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 106, in handle_request ) = self._receive_response_headers(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 177, in _receive_response_headers event = self._receive_event(timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 231, in _receive_event raise RemoteProtocolError(msg) httpcore.RemoteProtocolError: Server disconnected without sending a response.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 480, in call
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/app/openhands/runtime/impl/action_execution/action_execution_client.py", line 125, in _send_action_server_request
return send_request(self.session, method, url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 338, in wrapped_f
return copy(f, *args, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 477, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 378, in iter
result = action(retry_state)
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 400, in
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/openhands/server/session/session.py", line 203, in initialize_agent
await self.agent_session.start(
File "/app/openhands/server/session/agent_session.py", line 131, in start
runtime_connected = await self._create_runtime(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/openhands/server/session/agent_session.py", line 376, in _create_runtime
await self.runtime.connect()
File "/app/openhands/runtime/impl/docker/docker_runtime.py", line 183, in connect
await call_sync_from_async(self.wait_until_alive)
File "/app/openhands/utils/async_utils.py", line 18, in call_sync_from_async
result = await coro
^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/openhands/utils/async_utils.py", line 17, in
@joostvunderink In your case the container seems to have started (the Container started message is present). Is there anything relevant in the Docker logs of the runtime container?
You can check the logs either from the Docker Desktop UI, or by running docker logs openhands-runtime-0ec7f644fbff4044a88a0d3c17b2c428 in the terminal.
Do you encounter the same issue when starting OpenHands without cloning a repository?
@llamantino I'm running an older version of Docker Desktop. I've tried to update it but so far, no luck. Not sure if that could cause any trouble. Docker Desktop says: You’re currently on version 4.10.1 (82475). The latest version is 4.43.2 (199162)
The runtime container is up and running indeed. Here are the logs of the runtime container:
[~]$ docker logs openhands-runtime-aefc3cf17ba44f76ae32e9b166d0001c
19:24:57 - openhands:WARNING: action_execution_server.py:670 - Starting Action Execution Server
19:24:57 - openhands:INFO: action_execution_server.py:697 - Starting file viewer server
19:24:57 - openhands:INFO: file_viewer_server.py:94 - File viewer server URL saved to /tmp/oh-server-url: http://localhost:33911
19:24:57 - openhands:INFO: file_viewer_server.py:95 - Starting file viewer server on port 33911
19:24:57 - openhands:INFO: action_execution_server.py:702 - File viewer server started at http://localhost:33911
INFO: Started server process [9]
INFO: Waiting for application startup.
19:24:58 - openhands:INFO: action_execution_server.py:717 - Initializing ActionExecutor...
INFO: Started server process [9]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:33911 (Press CTRL+C to quit)
19:24:58 - openhands:INFO: action_execution_server.py:215 - No max memory limit set, using all available system memory
Process Process-1:
Traceback (most recent call last):
File "/openhands/micromamba/envs/openhands/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/openhands/micromamba/envs/openhands/lib/python3.12/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/openhands/code/openhands/runtime/browser/browser_env.py", line 101, in browser_process
obs, info = env.reset()
^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/gymnasium/wrappers/common.py", line 400, in reset
return super().reset(seed=seed, options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/gymnasium/core.py", line 333, in reset
return self.env.reset(seed=seed, options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/browsergym/core/env.py", line 245, in reset
self.context = self.browser.new_context(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/sync_api/_generated.py", line 13968, in new_context
self._sync(
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync
return task.result()
^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_browser.py", line 131, in new_context
channel = await self._channel.send("newContext", params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_connection.py", line 61, in send
return await self._connection.wrap_api_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_connection.py", line 528, in wrap_api_call
raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
playwright._impl._errors.TargetClosedError: Browser.new_context: Target page, context or browser has been closed
Process Process-2:
Traceback (most recent call last):
File "/openhands/micromamba/envs/openhands/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/openhands/micromamba/envs/openhands/lib/python3.12/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/openhands/code/openhands/runtime/browser/browser_env.py", line 101, in browser_process
obs, info = env.reset()
^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/gymnasium/wrappers/common.py", line 400, in reset
return super().reset(seed=seed, options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/gymnasium/core.py", line 333, in reset
return self.env.reset(seed=seed, options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/browsergym/core/env.py", line 245, in reset
self.context = self.browser.new_context(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/sync_api/_generated.py", line 13968, in new_context
self._sync(
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync
return task.result()
^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_browser.py", line 131, in new_context
channel = await self._channel.send("newContext", params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_connection.py", line 61, in send
return await self._connection.wrap_api_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_connection.py", line 528, in wrap_api_call
raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
playwright._impl._errors.TargetClosedError: Browser.new_context: Target page, context or browser has been closed
Process Process-3:
Traceback (most recent call last):
File "/openhands/micromamba/envs/openhands/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/openhands/micromamba/envs/openhands/lib/python3.12/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/openhands/code/openhands/runtime/browser/browser_env.py", line 101, in browser_process
obs, info = env.reset()
^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/gymnasium/wrappers/common.py", line 400, in reset
return super().reset(seed=seed, options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/gymnasium/core.py", line 333, in reset
return self.env.reset(seed=seed, options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/browsergym/core/env.py", line 245, in reset
self.context = self.browser.new_context(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/sync_api/_generated.py", line 13968, in new_context
self._sync(
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync
return task.result()
^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_browser.py", line 131, in new_context
channel = await self._channel.send("newContext", params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_connection.py", line 61, in send
return await self._connection.wrap_api_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_connection.py", line 528, in wrap_api_call
raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
playwright._impl._errors.TargetClosedError: Browser.new_context: Target page, context or browser has been closed
When I start the openhands main docker container afresh, open localhost:3000 and click "Launch from Scratch" (I think that's what you meant), a similar result. The runtime logs:
[~]$ docker logs openhands-runtime-74f9f1a7968e4834a98404c0223b6fc6 [21:38:45] 19:39:31 - openhands:WARNING: action_execution_server.py:670 - Starting Action Execution Server 19:39:31 - openhands:INFO: action_execution_server.py:697 - Starting file viewer server 19:39:31 - openhands:INFO: file_viewer_server.py:94 - File viewer server URL saved to /tmp/oh-server-url: http://localhost:31891 19:39:31 - openhands:INFO: file_viewer_server.py:95 - Starting file viewer server on port 31891 19:39:31 - openhands:INFO: action_execution_server.py:702 - File viewer server started at http://localhost:31891 INFO: Started server process [9] INFO: Waiting for application startup. 19:39:31 - openhands:INFO: action_execution_server.py:717 - Initializing ActionExecutor... INFO: Started server process [9] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:31891 (Press CTRL+C to quit) 19:39:31 - openhands:INFO: action_execution_server.py:215 - No max memory limit set, using all available system memory Process Process-1: Traceback (most recent call last): File "/openhands/micromamba/envs/openhands/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/openhands/micromamba/envs/openhands/lib/python3.12/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/openhands/code/openhands/runtime/browser/browser_env.py", line 101, in browser_process obs, info = env.reset() ^^^^^^^^^^^ File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/gymnasium/wrappers/common.py", line 400, in reset return super().reset(seed=seed, options=options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/gymnasium/core.py", line 333, in reset return self.env.reset(seed=seed, options=options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/browsergym/core/env.py", line 245, in reset self.context = self.browser.new_context( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/sync_api/_generated.py", line 13968, in new_context self._sync( File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync return task.result() ^^^^^^^^^^^^^ File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_browser.py", line 131, in new_context channel = await self._channel.send("newContext", params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_connection.py", line 61, in send return await self._connection.wrap_api_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/playwright/_impl/_connection.py", line 528, in wrap_api_call raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.TargetClosedError: Browser.new_context: Target page, context or browser has been closed
Hope this helps. I'll see if I can get Docker Desktop upgraded to see if that makes any difference. Thanks for the help so far!
@llamantino After installing the latest Docker version - 4.43.2 (199162) - everything works as it should. I'm leaving my comments here just in case someone else has an older version of Docker and runs into similar issues.
@joostvunderink Thanks. I had checked the error in the runtime log, but it wasn't a blocking error, so it had to be something else.
Thanks for letting us know, it'll help us troubleshoot more easily next time.
The same bug on WSL. Runtime starts and catches an error, which causes it to shut down. WSL 2.5.10.0 Ubuntu 22.04.5 LTS Docker Desktop 4.45.0 (203075) OpenHands 0.54.0 installed via UV and once upon a time I tried it on 0.45.0 installed via docker and had the same problem. The model indicated is local, running on lm studio. But as I understand it, it didn’t come to requests for lm studio.
Logs from the openhands-app:
2025-08-31 07:59:09.869 | Starting OpenHands...
2025-08-31 07:59:09.872 | Running OpenHands as root
2025-08-31 07:59:15.241 | 00:59:15 - openhands:INFO: server_config.py:56 - Using config class None
2025-08-31 07:59:15.394 | INFO: Started server process [8]
2025-08-31 07:59:15.394 | INFO: Waiting for application startup.
2025-08-31 07:59:15.394 | INFO: Application startup complete.
2025-08-31 07:59:15.395 | INFO: Uvicorn running on http://0.0.0.0:3000 (Press CTRL+C to quit)
2025-08-31 08:02:38.114 | INFO: 172.17.0.1:44600 - "GET / HTTP/1.1" 200 OK
2025-08-31 08:02:38.583 | INFO: 172.17.0.1:44600 - "GET /locales/en/translation.json HTTP/1.1" 200 OK
2025-08-31 08:02:38.603 | INFO: 172.17.0.1:44600 - "GET /favicon.ico HTTP/1.1" 200 OK
2025-08-31 08:02:38.606 | INFO: 172.17.0.1:44606 - "GET /api/options/config HTTP/1.1" 200 OK
2025-08-31 08:02:38.702 | INFO: 172.17.0.1:44606 - "GET /api/options/config HTTP/1.1" 200 OK
2025-08-31 08:02:38.715 | INFO: 172.17.0.1:44606 - "GET /api/settings HTTP/1.1" 200 OK
2025-08-31 08:02:41.053 | INFO: 172.17.0.1:44606 - "GET /api/conversations?limit=20 HTTP/1.1" 200 OK
2025-08-31 08:02:44.792 | INFO: 172.17.0.1:44606 - "DELETE /api/conversations/069328cf381247ba818e65f9290f59db HTTP/1.1" 200 OK
2025-08-31 08:02:44.798 | INFO: 172.17.0.1:44606 - "GET /api/conversations?limit=20 HTTP/1.1" 200 OK
2025-08-31 08:02:47.143 | 01:02:47 - openhands:INFO: manage_conversations.py:125 - initializing_new_conversation:repository=None git_provider=None selected_branch=None initial_user_msg=None image_urls=None replay_json=None suggested_task=None create_microagent=None conversation_instructions=None mcp_config=None
2025-08-31 08:02:47.143 | 01:02:47 - openhands:INFO: conversation_service.py:48 - New conversation ID: 4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:47.143 | 01:02:47 - openhands:INFO: conversation_service.py:55 - Saving metadata for conversation 4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:47.144 | 01:02:47 - openhands:INFO: conversation_service.py:90 - Creating conversation
2025-08-31 08:02:47.144 | 01:02:47 - openhands:INFO: conversation_service.py:98 - Loading settings
2025-08-31 08:02:47.145 | 01:02:47 - openhands:INFO: conversation_service.py:101 - Settings loaded
2025-08-31 08:02:47.145 | 01:02:47 - openhands:INFO: conversation_service.py:136 - Starting agent loop for conversation 4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:47.145 | 01:02:47 - openhands:INFO: standalone_conversation_manager.py:286 - maybe_start_agent_loop:4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:47.145 | 01:02:47 - openhands:INFO: standalone_conversation_manager.py:302 - starting_agent_loop:4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:47.146 | 01:02:47 - openhands:INFO: llm_registry.py:87 - [LLM registry e25c9786-4fe3-4e9f-a071-1dac85b2a3c8]: Registering service for agent
2025-08-31 08:02:47.147 | 01:02:47 - openhands:INFO: conversation_service.py:155 - Finished initializing conversation 4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:47.149 | 01:02:47 - openhands:WARNING: mcp_config.py:331 - No search engine API key found, skipping search engine
2025-08-31 08:02:47.151 | 01:02:47 - openhands:INFO: session.py:207 - Enabling pipeline condenser with: browser_output_masking(attention_window=2), llm(model="openai/qwen3-coder-30b-a3b-instruct", base_url="http://host.docker.internal:1234/v1", keep_first=4, max_size=80)
2025-08-31 08:02:47.160 | 01:02:47 - openhands:INFO: llm_registry.py:87 - [LLM registry e25c9786-4fe3-4e9f-a071-1dac85b2a3c8]: Registering service for condenser
2025-08-31 08:02:47.173 | INFO: 172.17.0.1:44606 - "POST /api/conversations HTTP/1.1" 200 OK
2025-08-31 08:02:47.372 | INFO: 172.17.0.1:44606 - "GET /api/conversations/4b3b0d7e855a4316a5767b0ab0a39131 HTTP/1.1" 200 OK
2025-08-31 08:02:48.178 | 01:02:48 - openhands:INFO: docker_runtime.py:182 - [runtime 4b3b0d7e855a4316a5767b0ab0a39131] Starting runtime with image: docker.all-hands.dev/all-hands-ai/runtime:0.54.0-nikolaik
2025-08-31 08:02:48.643 | 01:02:48 - openhands:INFO: docker_runtime.py:477 - [runtime 4b3b0d7e855a4316a5767b0ab0a39131] Starting server with command: ['/openhands/micromamba/bin/micromamba', 'run', '-n', 'openhands', 'poetry', 'run', 'python', '-u', '-m', 'openhands.runtime.action_execution_server', '30472', '--working-dir', '/workspace', '--plugins', 'agent_skills', 'jupyter', 'vscode', '--username', 'root', '--user-id', '0']
2025-08-31 08:02:50.439 | INFO: 172.17.0.1:44606 - "GET /api/conversations/4b3b0d7e855a4316a5767b0ab0a39131 HTTP/1.1" 200 OK
2025-08-31 08:02:50.449 | INFO: 172.17.0.1:57964 - "WebSocket /socket.io/?latest_event_id=-1&conversation_id=4b3b0d7e855a4316a5767b0ab0a39131&providers_set=&session_api_key=null&EIO=4&transport=websocket" [accepted]
2025-08-31 08:02:50.449 | INFO: connection open
2025-08-31 08:02:50.451 | 01:02:50 - openhands:INFO: listen_socket.py:38 - sio:connect: y90N-Xrq508cJuulAAAB
2025-08-31 08:02:50.452 | 01:02:50 - openhands:INFO: listen_socket.py:49 - Socket request for conversation 4b3b0d7e855a4316a5767b0ab0a39131 with connection_id y90N-Xrq508cJuulAAAB
2025-08-31 08:02:50.453 | 01:02:50 - openhands:INFO: listen_socket.py:74 - User None is allowed to connect to conversation 4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:50.453 | 01:02:50 - openhands:INFO: listen_socket.py:88 - Replaying event stream for conversation 4b3b0d7e855a4316a5767b0ab0a39131 with connection_id y90N-Xrq508cJuulAAAB...
2025-08-31 08:02:50.453 | 01:02:50 - openhands:INFO: listen_socket.py:116 - Finished replaying event stream for conversation 4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:50.454 | 01:02:50 - openhands:INFO: conversation_service.py:242 - Git provider scaffold: {}
2025-08-31 08:02:50.454 | 01:02:50 - openhands:INFO: standalone_conversation_manager.py:156 - join_conversation:4b3b0d7e855a4316a5767b0ab0a39131:y90N-Xrq508cJuulAAAB
2025-08-31 08:02:50.454 | 01:02:50 - openhands:INFO: standalone_conversation_manager.py:286 - maybe_start_agent_loop:4b3b0d7e855a4316a5767b0ab0a39131
2025-08-31 08:02:50.454 | 01:02:50 - openhands:INFO: listen_socket.py:134 - Successfully joined conversation 4b3b0d7e855a4316a5767b0ab0a39131 with connection_id y90N-Xrq508cJuulAAAB
2025-08-31 08:02:53.190 | 01:02:53 - openhands:INFO: docker_runtime.py:186 - [runtime 4b3b0d7e855a4316a5767b0ab0a39131] Container started: openhands-runtime-4b3b0d7e855a4316a5767b0ab0a39131. VSCode URL: None
2025-08-31 08:02:53.190 | 01:02:53 - openhands:INFO: docker_runtime.py:197 - [runtime 4b3b0d7e855a4316a5767b0ab0a39131] Waiting for client to become ready at http://host.docker.internal:30472...
2025-08-31 08:04:19.818 | INFO: 172.17.0.1:45922 - "GET /api/conversations/4b3b0d7e855a4316a5767b0ab0a39131 HTTP/1.1" 200 OK
2025-08-31 08:05:02.098 | 01:05:02 - openhands:ERROR: agent_session.py:222 - Agent session start failed in 134.93661212921143s
2025-08-31 08:05:02.101 | 01:05:02 - openhands:ERROR: session.py:266 - Error creating agent_session: RetryError[<Future at 0x7bb0e412e900 state=finished raised RemoteProtocolError>]
2025-08-31 08:05:02.101 | Traceback (most recent call last):
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions
2025-08-31 08:05:02.101 | yield
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 250, in handle_request
2025-08-31 08:05:02.101 | resp = self._pool.handle_request(req)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 256, in handle_request
2025-08-31 08:05:02.101 | raise exc from None
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 236, in handle_request
2025-08-31 08:05:02.101 | response = connection.handle_request(
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 103, in handle_request
2025-08-31 08:05:02.101 | return self._connection.handle_request(request)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 136, in handle_request
2025-08-31 08:05:02.101 | raise exc
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 106, in handle_request
2025-08-31 08:05:02.101 | ) = self._receive_response_headers(**kwargs)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 177, in _receive_response_headers
2025-08-31 08:05:02.101 | event = self._receive_event(timeout=timeout)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 231, in _receive_event
2025-08-31 08:05:02.101 | raise RemoteProtocolError(msg)
2025-08-31 08:05:02.101 | httpcore.RemoteProtocolError: Server disconnected without sending a response.
2025-08-31 08:05:02.101 |
2025-08-31 08:05:02.101 | The above exception was the direct cause of the following exception:
2025-08-31 08:05:02.101 |
2025-08-31 08:05:02.101 | Traceback (most recent call last):
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__
2025-08-31 08:05:02.101 | result = fn(*args, **kwargs)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/openhands/runtime/impl/action_execution/action_execution_client.py", line 129, in _send_action_server_request
2025-08-31 08:05:02.101 | return send_request(self.session, method, url, **kwargs)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 338, in wrapped_f
2025-08-31 08:05:02.101 | return copy(f, *args, **kw)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__
2025-08-31 08:05:02.101 | do = self.iter(retry_state=retry_state)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter
2025-08-31 08:05:02.101 | result = action(retry_state)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 400, in <lambda>
2025-08-31 08:05:02.101 | self._add_action_func(lambda rs: rs.outcome.result())
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
2025-08-31 08:05:02.101 | return self.__get_result()
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
2025-08-31 08:05:02.101 | raise self._exception
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__
2025-08-31 08:05:02.101 | result = fn(*args, **kwargs)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/openhands/runtime/utils/request.py", line 44, in send_request
2025-08-31 08:05:02.101 | response = session.request(method, url, timeout=timeout, **kwargs)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/openhands/utils/http_session.py", line 30, in request
2025-08-31 08:05:02.101 | return CLIENT.request(*args, **kwargs)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 825, in request
2025-08-31 08:05:02.101 | return self.send(request, auth=auth, follow_redirects=follow_redirects)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 914, in send
2025-08-31 08:05:02.101 | response = self._send_handling_auth(
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 942, in _send_handling_auth
2025-08-31 08:05:02.101 | response = self._send_handling_redirects(
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 979, in _send_handling_redirects
2025-08-31 08:05:02.101 | response = self._send_single_request(request)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1014, in _send_single_request
2025-08-31 08:05:02.101 | response = transport.handle_request(request)
2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 249, in handle_request
2025-08-31 08:05:02.101 | with map_httpcore_exceptions():
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
2025-08-31 08:05:02.102 | self.gen.throw(value)
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions
2025-08-31 08:05:02.102 | raise mapped_exc(message) from exc
2025-08-31 08:05:02.102 | httpx.RemoteProtocolError: Server disconnected without sending a response.
2025-08-31 08:05:02.102 |
2025-08-31 08:05:02.102 | The above exception was the direct cause of the following exception:
2025-08-31 08:05:02.102 |
2025-08-31 08:05:02.102 | Traceback (most recent call last):
2025-08-31 08:05:02.102 | File "/app/openhands/server/session/session.py", line 232, in initialize_agent
2025-08-31 08:05:02.102 | await self.agent_session.start(
2025-08-31 08:05:02.102 | File "/app/openhands/server/session/agent_session.py", line 137, in start
2025-08-31 08:05:02.102 | runtime_connected = await self._create_runtime(
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/openhands/server/session/agent_session.py", line 387, in _create_runtime
2025-08-31 08:05:02.102 | await self.runtime.connect()
2025-08-31 08:05:02.102 | File "/app/openhands/runtime/impl/docker/docker_runtime.py", line 200, in connect
2025-08-31 08:05:02.102 | await call_sync_from_async(self.wait_until_alive)
2025-08-31 08:05:02.102 | File "/app/openhands/utils/async_utils.py", line 17, in call_sync_from_async
2025-08-31 08:05:02.102 | result = await coro
2025-08-31 08:05:02.102 | ^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
2025-08-31 08:05:02.102 | result = self.fn(*self.args, **self.kwargs)
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/openhands/utils/async_utils.py", line 16, in <lambda>
2025-08-31 08:05:02.102 | coro = loop.run_in_executor(None, lambda: fn(*args, **kwargs))
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 338, in wrapped_f
2025-08-31 08:05:02.102 | return copy(f, *args, **kw)
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__
2025-08-31 08:05:02.102 | do = self.iter(retry_state=retry_state)
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter
2025-08-31 08:05:02.102 | result = action(retry_state)
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 420, in exc_check
2025-08-31 08:05:02.102 | raise retry_exc.reraise()
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 187, in reraise
2025-08-31 08:05:02.102 | raise self.last_attempt.result()
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
2025-08-31 08:05:02.102 | return self.__get_result()
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
2025-08-31 08:05:02.102 | raise self._exception
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__
2025-08-31 08:05:02.102 | result = fn(*args, **kwargs)
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/openhands/runtime/impl/docker/docker_runtime.py", line 574, in wait_until_alive
2025-08-31 08:05:02.102 | self.check_if_alive()
2025-08-31 08:05:02.102 | File "/app/openhands/runtime/impl/action_execution/action_execution_client.py", line 132, in check_if_alive
2025-08-31 08:05:02.102 | response = self._send_action_server_request(
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 338, in wrapped_f
2025-08-31 08:05:02.102 | return copy(f, *args, **kw)
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__
2025-08-31 08:05:02.102 | do = self.iter(retry_state=retry_state)
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter
2025-08-31 08:05:02.102 | result = action(retry_state)
2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 421, in exc_check
2025-08-31 08:05:02.102 | raise retry_exc from fut.exception()
2025-08-31 08:05:02.102 | tenacity.RetryError: RetryError[<Future at 0x7bb0e412e900 state=finished raised RemoteProtocolError>]
2025-08-31 08:05:55.858 | INFO: 172.17.0.1:56500 - "GET /api/conversations/4b3b0d7e855a4316a5767b0ab0a39131 HTTP/1.1" 200 OK
Logs from openhands-runtime:
2025-08-31 08:03:11.397 | 01:03:11 - openhands:WARNING: action_execution_server.py:644 - Starting Action Execution Server
2025-08-31 08:03:11.397 | 01:03:11 - openhands:INFO: action_execution_server.py:671 - Starting file viewer server
2025-08-31 08:03:11.399 | 01:03:11 - openhands:INFO: file_viewer_server.py:92 - File viewer server URL saved to /tmp/oh-server-url: http://localhost:31100
2025-08-31 08:03:11.399 | 01:03:11 - openhands:INFO: file_viewer_server.py:93 - Starting file viewer server on port 31100
2025-08-31 08:03:11.401 | 01:03:11 - openhands:INFO: action_execution_server.py:676 - File viewer server started at http://localhost:31100
2025-08-31 08:03:11.454 | INFO: Started server process [8]
2025-08-31 08:03:11.455 | INFO: Started server process [8]
2025-08-31 08:03:11.455 | INFO: Waiting for application startup.
2025-08-31 08:03:11.455 | 01:03:11 - openhands:INFO: action_execution_server.py:691 - Initializing ActionExecutor...
2025-08-31 08:03:11.455 | INFO: Waiting for application startup.
2025-08-31 08:03:11.455 | INFO: Application startup complete.
2025-08-31 08:03:11.455 | INFO: Uvicorn running on http://127.0.0.1:31100 (Press CTRL+C to quit)
2025-08-31 08:03:11.464 | 01:03:11 - openhands:INFO: action_execution_server.py:217 - No max memory limit set, using all available system memory
2025-08-31 08:03:18.341 | 01:03:18 - openhands:INFO: browser_env.py:103 - Successfully called env.reset
2025-08-31 08:03:18.341 | 01:03:18 - openhands:INFO: browser_env.py:121 - Browser env started.
2025-08-31 08:05:10.661 | ERROR: Traceback (most recent call last):
2025-08-31 08:05:10.661 | File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/starlette/routing.py", line 692, in lifespan
2025-08-31 08:05:10.661 | async with self.lifespan_context(app) as maybe_state:
2025-08-31 08:05:10.661 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:10.661 | File "/openhands/micromamba/envs/openhands/lib/python3.12/contextlib.py", line 210, in __aenter__
2025-08-31 08:05:10.661 | return await anext(self.gen)
2025-08-31 08:05:10.661 | ^^^^^^^^^^^^^^^^^^^^^
2025-08-31 08:05:10.661 | File "/openhands/code/openhands/runtime/action_execution_server.py", line 700, in lifespan
2025-08-31 08:05:10.661 | await client.ainit()
2025-08-31 08:05:10.661 | File "/openhands/code/openhands/runtime/action_execution_server.py", line 301, in ainit
2025-08-31 08:05:10.661 | await wait_all(
2025-08-31 08:05:10.661 | File "/openhands/code/openhands/utils/async_utils.py", line 77, in wait_all
2025-08-31 08:05:10.661 | raise asyncio.TimeoutError()
2025-08-31 08:05:10.661 | TimeoutError
2025-08-31 08:05:10.661 |
2025-08-31 08:05:10.661 | ERROR: Application startup failed. Exiting.
The same bug on WSL. Runtime starts and catches an error, which causes it to shut down. WSL 2.5.10.0 Ubuntu 22.04.5 LTS Docker Desktop 4.45.0 (203075) OpenHands 0.54.0 installed via UV and once upon a time I tried it on 0.45.0 installed via docker and had the same problem. The model indicated is local, running on lm studio. But as I understand it, it didn’t come to requests for lm studio.
Logs from the openhands-app:
2025-08-31 07:59:09.869 | Starting OpenHands... 2025-08-31 07:59:09.872 | Running OpenHands as root 2025-08-31 07:59:15.241 | 00:59:15 - openhands:INFO: server_config.py:56 - Using config class None 2025-08-31 07:59:15.394 | INFO: Started server process [8] 2025-08-31 07:59:15.394 | INFO: Waiting for application startup. 2025-08-31 07:59:15.394 | INFO: Application startup complete. 2025-08-31 07:59:15.395 | INFO: Uvicorn running on http://0.0.0.0:3000 (Press CTRL+C to quit) 2025-08-31 08:02:38.114 | INFO: 172.17.0.1:44600 - "GET / HTTP/1.1" 200 OK 2025-08-31 08:02:38.583 | INFO: 172.17.0.1:44600 - "GET /locales/en/translation.json HTTP/1.1" 200 OK 2025-08-31 08:02:38.603 | INFO: 172.17.0.1:44600 - "GET /favicon.ico HTTP/1.1" 200 OK 2025-08-31 08:02:38.606 | INFO: 172.17.0.1:44606 - "GET /api/options/config HTTP/1.1" 200 OK 2025-08-31 08:02:38.702 | INFO: 172.17.0.1:44606 - "GET /api/options/config HTTP/1.1" 200 OK 2025-08-31 08:02:38.715 | INFO: 172.17.0.1:44606 - "GET /api/settings HTTP/1.1" 200 OK 2025-08-31 08:02:41.053 | INFO: 172.17.0.1:44606 - "GET /api/conversations?limit=20 HTTP/1.1" 200 OK 2025-08-31 08:02:44.792 | INFO: 172.17.0.1:44606 - "DELETE /api/conversations/069328cf381247ba818e65f9290f59db HTTP/1.1" 200 OK 2025-08-31 08:02:44.798 | INFO: 172.17.0.1:44606 - "GET /api/conversations?limit=20 HTTP/1.1" 200 OK 2025-08-31 08:02:47.143 | 01:02:47 - openhands:INFO: manage_conversations.py:125 - initializing_new_conversation:repository=None git_provider=None selected_branch=None initial_user_msg=None image_urls=None replay_json=None suggested_task=None create_microagent=None conversation_instructions=None mcp_config=None 2025-08-31 08:02:47.143 | 01:02:47 - openhands:INFO: conversation_service.py:48 - New conversation ID: 4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:47.143 | 01:02:47 - openhands:INFO: conversation_service.py:55 - Saving metadata for conversation 4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:47.144 | 01:02:47 - openhands:INFO: conversation_service.py:90 - Creating conversation 2025-08-31 08:02:47.144 | 01:02:47 - openhands:INFO: conversation_service.py:98 - Loading settings 2025-08-31 08:02:47.145 | 01:02:47 - openhands:INFO: conversation_service.py:101 - Settings loaded 2025-08-31 08:02:47.145 | 01:02:47 - openhands:INFO: conversation_service.py:136 - Starting agent loop for conversation 4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:47.145 | 01:02:47 - openhands:INFO: standalone_conversation_manager.py:286 - maybe_start_agent_loop:4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:47.145 | 01:02:47 - openhands:INFO: standalone_conversation_manager.py:302 - starting_agent_loop:4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:47.146 | 01:02:47 - openhands:INFO: llm_registry.py:87 - [LLM registry e25c9786-4fe3-4e9f-a071-1dac85b2a3c8]: Registering service for agent 2025-08-31 08:02:47.147 | 01:02:47 - openhands:INFO: conversation_service.py:155 - Finished initializing conversation 4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:47.149 | 01:02:47 - openhands:WARNING: mcp_config.py:331 - No search engine API key found, skipping search engine 2025-08-31 08:02:47.151 | 01:02:47 - openhands:INFO: session.py:207 - Enabling pipeline condenser with: browser_output_masking(attention_window=2), llm(model="openai/qwen3-coder-30b-a3b-instruct", base_url="http://host.docker.internal:1234/v1", keep_first=4, max_size=80) 2025-08-31 08:02:47.160 | 01:02:47 - openhands:INFO: llm_registry.py:87 - [LLM registry e25c9786-4fe3-4e9f-a071-1dac85b2a3c8]: Registering service for condenser 2025-08-31 08:02:47.173 | INFO: 172.17.0.1:44606 - "POST /api/conversations HTTP/1.1" 200 OK 2025-08-31 08:02:47.372 | INFO: 172.17.0.1:44606 - "GET /api/conversations/4b3b0d7e855a4316a5767b0ab0a39131 HTTP/1.1" 200 OK 2025-08-31 08:02:48.178 | 01:02:48 - openhands:INFO: docker_runtime.py:182 - [runtime 4b3b0d7e855a4316a5767b0ab0a39131] Starting runtime with image: docker.all-hands.dev/all-hands-ai/runtime:0.54.0-nikolaik 2025-08-31 08:02:48.643 | 01:02:48 - openhands:INFO: docker_runtime.py:477 - [runtime 4b3b0d7e855a4316a5767b0ab0a39131] Starting server with command: ['/openhands/micromamba/bin/micromamba', 'run', '-n', 'openhands', 'poetry', 'run', 'python', '-u', '-m', 'openhands.runtime.action_execution_server', '30472', '--working-dir', '/workspace', '--plugins', 'agent_skills', 'jupyter', 'vscode', '--username', 'root', '--user-id', '0'] 2025-08-31 08:02:50.439 | INFO: 172.17.0.1:44606 - "GET /api/conversations/4b3b0d7e855a4316a5767b0ab0a39131 HTTP/1.1" 200 OK 2025-08-31 08:02:50.449 | INFO: 172.17.0.1:57964 - "WebSocket /socket.io/?latest_event_id=-1&conversation_id=4b3b0d7e855a4316a5767b0ab0a39131&providers_set=&session_api_key=null&EIO=4&transport=websocket" [accepted] 2025-08-31 08:02:50.449 | INFO: connection open 2025-08-31 08:02:50.451 | 01:02:50 - openhands:INFO: listen_socket.py:38 - sio:connect: y90N-Xrq508cJuulAAAB 2025-08-31 08:02:50.452 | 01:02:50 - openhands:INFO: listen_socket.py:49 - Socket request for conversation 4b3b0d7e855a4316a5767b0ab0a39131 with connection_id y90N-Xrq508cJuulAAAB 2025-08-31 08:02:50.453 | 01:02:50 - openhands:INFO: listen_socket.py:74 - User None is allowed to connect to conversation 4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:50.453 | 01:02:50 - openhands:INFO: listen_socket.py:88 - Replaying event stream for conversation 4b3b0d7e855a4316a5767b0ab0a39131 with connection_id y90N-Xrq508cJuulAAAB... 2025-08-31 08:02:50.453 | 01:02:50 - openhands:INFO: listen_socket.py:116 - Finished replaying event stream for conversation 4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:50.454 | 01:02:50 - openhands:INFO: conversation_service.py:242 - Git provider scaffold: {} 2025-08-31 08:02:50.454 | 01:02:50 - openhands:INFO: standalone_conversation_manager.py:156 - join_conversation:4b3b0d7e855a4316a5767b0ab0a39131:y90N-Xrq508cJuulAAAB 2025-08-31 08:02:50.454 | 01:02:50 - openhands:INFO: standalone_conversation_manager.py:286 - maybe_start_agent_loop:4b3b0d7e855a4316a5767b0ab0a39131 2025-08-31 08:02:50.454 | 01:02:50 - openhands:INFO: listen_socket.py:134 - Successfully joined conversation 4b3b0d7e855a4316a5767b0ab0a39131 with connection_id y90N-Xrq508cJuulAAAB 2025-08-31 08:02:53.190 | 01:02:53 - openhands:INFO: docker_runtime.py:186 - [runtime 4b3b0d7e855a4316a5767b0ab0a39131] Container started: openhands-runtime-4b3b0d7e855a4316a5767b0ab0a39131. VSCode URL: None 2025-08-31 08:02:53.190 | 01:02:53 - openhands:INFO: docker_runtime.py:197 - [runtime 4b3b0d7e855a4316a5767b0ab0a39131] Waiting for client to become ready at http://host.docker.internal:30472... 2025-08-31 08:04:19.818 | INFO: 172.17.0.1:45922 - "GET /api/conversations/4b3b0d7e855a4316a5767b0ab0a39131 HTTP/1.1" 200 OK 2025-08-31 08:05:02.098 | 01:05:02 - openhands:ERROR: agent_session.py:222 - Agent session start failed in 134.93661212921143s 2025-08-31 08:05:02.101 | 01:05:02 - openhands:ERROR: session.py:266 - Error creating agent_session: RetryError[<Future at 0x7bb0e412e900 state=finished raised RemoteProtocolError>] 2025-08-31 08:05:02.101 | Traceback (most recent call last): 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions 2025-08-31 08:05:02.101 | yield 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 250, in handle_request 2025-08-31 08:05:02.101 | resp = self._pool.handle_request(req) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 256, in handle_request 2025-08-31 08:05:02.101 | raise exc from None 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 236, in handle_request 2025-08-31 08:05:02.101 | response = connection.handle_request( 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/connection.py", line 103, in handle_request 2025-08-31 08:05:02.101 | return self._connection.handle_request(request) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 136, in handle_request 2025-08-31 08:05:02.101 | raise exc 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 106, in handle_request 2025-08-31 08:05:02.101 | ) = self._receive_response_headers(**kwargs) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 177, in _receive_response_headers 2025-08-31 08:05:02.101 | event = self._receive_event(timeout=timeout) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpcore/_sync/http11.py", line 231, in _receive_event 2025-08-31 08:05:02.101 | raise RemoteProtocolError(msg) 2025-08-31 08:05:02.101 | httpcore.RemoteProtocolError: Server disconnected without sending a response. 2025-08-31 08:05:02.101 | 2025-08-31 08:05:02.101 | The above exception was the direct cause of the following exception: 2025-08-31 08:05:02.101 | 2025-08-31 08:05:02.101 | Traceback (most recent call last): 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__ 2025-08-31 08:05:02.101 | result = fn(*args, **kwargs) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/openhands/runtime/impl/action_execution/action_execution_client.py", line 129, in _send_action_server_request 2025-08-31 08:05:02.101 | return send_request(self.session, method, url, **kwargs) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 338, in wrapped_f 2025-08-31 08:05:02.101 | return copy(f, *args, **kw) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__ 2025-08-31 08:05:02.101 | do = self.iter(retry_state=retry_state) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter 2025-08-31 08:05:02.101 | result = action(retry_state) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 400, in <lambda> 2025-08-31 08:05:02.101 | self._add_action_func(lambda rs: rs.outcome.result()) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result 2025-08-31 08:05:02.101 | return self.__get_result() 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result 2025-08-31 08:05:02.101 | raise self._exception 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__ 2025-08-31 08:05:02.101 | result = fn(*args, **kwargs) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/openhands/runtime/utils/request.py", line 44, in send_request 2025-08-31 08:05:02.101 | response = session.request(method, url, timeout=timeout, **kwargs) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/openhands/utils/http_session.py", line 30, in request 2025-08-31 08:05:02.101 | return CLIENT.request(*args, **kwargs) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 825, in request 2025-08-31 08:05:02.101 | return self.send(request, auth=auth, follow_redirects=follow_redirects) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 914, in send 2025-08-31 08:05:02.101 | response = self._send_handling_auth( 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 942, in _send_handling_auth 2025-08-31 08:05:02.101 | response = self._send_handling_redirects( 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 979, in _send_handling_redirects 2025-08-31 08:05:02.101 | response = self._send_single_request(request) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1014, in _send_single_request 2025-08-31 08:05:02.101 | response = transport.handle_request(request) 2025-08-31 08:05:02.101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.101 | File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 249, in handle_request 2025-08-31 08:05:02.101 | with map_httpcore_exceptions(): 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__ 2025-08-31 08:05:02.102 | self.gen.throw(value) 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions 2025-08-31 08:05:02.102 | raise mapped_exc(message) from exc 2025-08-31 08:05:02.102 | httpx.RemoteProtocolError: Server disconnected without sending a response. 2025-08-31 08:05:02.102 | 2025-08-31 08:05:02.102 | The above exception was the direct cause of the following exception: 2025-08-31 08:05:02.102 | 2025-08-31 08:05:02.102 | Traceback (most recent call last): 2025-08-31 08:05:02.102 | File "/app/openhands/server/session/session.py", line 232, in initialize_agent 2025-08-31 08:05:02.102 | await self.agent_session.start( 2025-08-31 08:05:02.102 | File "/app/openhands/server/session/agent_session.py", line 137, in start 2025-08-31 08:05:02.102 | runtime_connected = await self._create_runtime( 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/openhands/server/session/agent_session.py", line 387, in _create_runtime 2025-08-31 08:05:02.102 | await self.runtime.connect() 2025-08-31 08:05:02.102 | File "/app/openhands/runtime/impl/docker/docker_runtime.py", line 200, in connect 2025-08-31 08:05:02.102 | await call_sync_from_async(self.wait_until_alive) 2025-08-31 08:05:02.102 | File "/app/openhands/utils/async_utils.py", line 17, in call_sync_from_async 2025-08-31 08:05:02.102 | result = await coro 2025-08-31 08:05:02.102 | ^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run 2025-08-31 08:05:02.102 | result = self.fn(*self.args, **self.kwargs) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/openhands/utils/async_utils.py", line 16, in <lambda> 2025-08-31 08:05:02.102 | coro = loop.run_in_executor(None, lambda: fn(*args, **kwargs)) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 338, in wrapped_f 2025-08-31 08:05:02.102 | return copy(f, *args, **kw) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__ 2025-08-31 08:05:02.102 | do = self.iter(retry_state=retry_state) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter 2025-08-31 08:05:02.102 | result = action(retry_state) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 420, in exc_check 2025-08-31 08:05:02.102 | raise retry_exc.reraise() 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 187, in reraise 2025-08-31 08:05:02.102 | raise self.last_attempt.result() 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result 2025-08-31 08:05:02.102 | return self.__get_result() 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result 2025-08-31 08:05:02.102 | raise self._exception 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__ 2025-08-31 08:05:02.102 | result = fn(*args, **kwargs) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/openhands/runtime/impl/docker/docker_runtime.py", line 574, in wait_until_alive 2025-08-31 08:05:02.102 | self.check_if_alive() 2025-08-31 08:05:02.102 | File "/app/openhands/runtime/impl/action_execution/action_execution_client.py", line 132, in check_if_alive 2025-08-31 08:05:02.102 | response = self._send_action_server_request( 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 338, in wrapped_f 2025-08-31 08:05:02.102 | return copy(f, *args, **kw) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__ 2025-08-31 08:05:02.102 | do = self.iter(retry_state=retry_state) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter 2025-08-31 08:05:02.102 | result = action(retry_state) 2025-08-31 08:05:02.102 | ^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:02.102 | File "/app/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 421, in exc_check 2025-08-31 08:05:02.102 | raise retry_exc from fut.exception() 2025-08-31 08:05:02.102 | tenacity.RetryError: RetryError[<Future at 0x7bb0e412e900 state=finished raised RemoteProtocolError>] 2025-08-31 08:05:55.858 | INFO: 172.17.0.1:56500 - "GET /api/conversations/4b3b0d7e855a4316a5767b0ab0a39131 HTTP/1.1" 200 OKLogs from openhands-runtime:
2025-08-31 08:03:11.397 | 01:03:11 - openhands:WARNING: action_execution_server.py:644 - Starting Action Execution Server 2025-08-31 08:03:11.397 | 01:03:11 - openhands:INFO: action_execution_server.py:671 - Starting file viewer server 2025-08-31 08:03:11.399 | 01:03:11 - openhands:INFO: file_viewer_server.py:92 - File viewer server URL saved to /tmp/oh-server-url: http://localhost:31100 2025-08-31 08:03:11.399 | 01:03:11 - openhands:INFO: file_viewer_server.py:93 - Starting file viewer server on port 31100 2025-08-31 08:03:11.401 | 01:03:11 - openhands:INFO: action_execution_server.py:676 - File viewer server started at http://localhost:31100 2025-08-31 08:03:11.454 | INFO: Started server process [8] 2025-08-31 08:03:11.455 | INFO: Started server process [8] 2025-08-31 08:03:11.455 | INFO: Waiting for application startup. 2025-08-31 08:03:11.455 | 01:03:11 - openhands:INFO: action_execution_server.py:691 - Initializing ActionExecutor... 2025-08-31 08:03:11.455 | INFO: Waiting for application startup. 2025-08-31 08:03:11.455 | INFO: Application startup complete. 2025-08-31 08:03:11.455 | INFO: Uvicorn running on http://127.0.0.1:31100 (Press CTRL+C to quit) 2025-08-31 08:03:11.464 | 01:03:11 - openhands:INFO: action_execution_server.py:217 - No max memory limit set, using all available system memory 2025-08-31 08:03:18.341 | 01:03:18 - openhands:INFO: browser_env.py:103 - Successfully called env.reset 2025-08-31 08:03:18.341 | 01:03:18 - openhands:INFO: browser_env.py:121 - Browser env started. 2025-08-31 08:05:10.661 | ERROR: Traceback (most recent call last): 2025-08-31 08:05:10.661 | File "/openhands/poetry/openhands-ai-5O4_aCHf-py3.12/lib/python3.12/site-packages/starlette/routing.py", line 692, in lifespan 2025-08-31 08:05:10.661 | async with self.lifespan_context(app) as maybe_state: 2025-08-31 08:05:10.661 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:10.661 | File "/openhands/micromamba/envs/openhands/lib/python3.12/contextlib.py", line 210, in __aenter__ 2025-08-31 08:05:10.661 | return await anext(self.gen) 2025-08-31 08:05:10.661 | ^^^^^^^^^^^^^^^^^^^^^ 2025-08-31 08:05:10.661 | File "/openhands/code/openhands/runtime/action_execution_server.py", line 700, in lifespan 2025-08-31 08:05:10.661 | await client.ainit() 2025-08-31 08:05:10.661 | File "/openhands/code/openhands/runtime/action_execution_server.py", line 301, in ainit 2025-08-31 08:05:10.661 | await wait_all( 2025-08-31 08:05:10.661 | File "/openhands/code/openhands/utils/async_utils.py", line 77, in wait_all 2025-08-31 08:05:10.661 | raise asyncio.TimeoutError() 2025-08-31 08:05:10.661 | TimeoutError 2025-08-31 08:05:10.661 | 2025-08-31 08:05:10.661 | ERROR: Application startup failed. Exiting.
The same problem with using Olima in mac to run docker engine. Does it exist only in this version?
This issue is stale because it has been open for 40 days with no activity. Remove the stale label or leave a comment, otherwise it will be closed in 10 days.
Tested at 0.59 GUI, the problem persists.
Same here.
I think I found the issue. My project contained a large number of folders and files. In my main project, I had a “ReferenceFolder” with other projects copied into it to guide OpenHands.
Those reference folders included venv, node_modules, etc. Once I deleted them, the session startup worked.
The parameter for the connection to the LLM is correct? Please check with curl http://llm-address:port/v1/models at the host shell, you are reache the llm-service.