[GH-ISSUE #63] “'NoneType' object is not iterable” with specific model provider #26

Closed
opened 2026-10-18 14:02:08 +00:00 by bsakaguchi · 2 comments
Owner

Originally created by @DtDEncryption on GitHub (Jun 17, 2026).
Original GitHub issue: https://github.com/open-webui/computer/issues/63

Background

I deployed v0.5.2 cptr with docker, and the provider was set to using Synthetic OpenAI-compatible endpoints.

Synthetic is an open-weight model inference service provider, supporting openai and anthropic endpoints. Its docs contain overview for its models and reference for api format.

Issue

When choosing Synthetic (synthetic.new) as model service provider, I couldn't use any model other than "hf:zai-org/GLM-4.7-FLASH", "hf:openai/gpt-oss-120b", "hf:Qwen/Qwen3.5-397B-A17B" and "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4".

Whenever I tried to send a request to other models like hf:MiniMaxAI/MiniMax-M3, cptr prompted "Error: 'NoneType' object is not iterable". The traceback log is posted at the end.

I had confirmed all models mentioned above works well in other clients, such as OpenWebUI, Hermes Agent.

Expectaion

Whichever model set in cptr, the chat interface remains fully functional without prompting "Error: 'NoneType' object is not iterable".

Log

open-computer     | 2026-06-17 01:56:13.511 | ERROR    | logging:callHandlers:1762 - Chat task error for message 3abd9293-02af-4c36-b77e-b50debd26dfe
open-computer     | Traceback (most recent call last):
open-computer     | 
open-computer     |   File "/home/cptr/.venv/bin/cptr", line 10, in <module>
open-computer     |     sys.exit(main())
open-computer     |     │   │    └ <function main at 0x7f48e010f6a0>
open-computer     |     │   └ <built-in function exit>
open-computer     |     └ <module 'sys' (built-in)>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/cptr/cli.py", line 45, in main
open-computer     |     cli()
open-computer     |     └ <Group cli>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 1524, in __call__
open-computer     |     return self.main(*args, **kwargs)
open-computer     |            │    │     │       └ {}
open-computer     |            │    │     └ ()
open-computer     |            │    └ <function Command.main at 0x7f48dffbb740>
open-computer     |            └ <Group cli>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 1445, in main
open-computer     |     rv = self.invoke(ctx)
open-computer     |          │    │      └ <click.core.Context object at 0x7f48dfdf64b0>
open-computer     |          │    └ <function Group.invoke at 0x7f48e0048680>
open-computer     |          └ <Group cli>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 1912, in invoke
open-computer     |     return _process_result(sub_ctx.command.invoke(sub_ctx))
open-computer     |            │               │       │       │      └ <click.core.Context object at 0x7f48e03204a0>
open-computer     |            │               │       │       └ <function Command.invoke at 0x7f48dffbb420>
open-computer     |            │               │       └ <Command run>
open-computer     |            │               └ <click.core.Context object at 0x7f48e03204a0>
open-computer     |            └ <function Group.invoke.<locals>._process_result at 0x7f48df664220>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 1308, in invoke
open-computer     |     return ctx.invoke(self.callback, **ctx.params)
open-computer     |            │   │      │    │           │   └ {'host': '0.0.0.0', 'port': 8000, 'headless': True, 'reload': False}
open-computer     |            │   │      │    │           └ <click.core.Context object at 0x7f48e03204a0>
open-computer     |            │   │      │    └ <function run at 0x7f48df302520>
open-computer     |            │   │      └ <Command run>
open-computer     |            │   └ <function Context.invoke at 0x7f48dffba660>
open-computer     |            └ <click.core.Context object at 0x7f48e03204a0>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 877, in invoke
open-computer     |     return callback(*args, **kwargs)
open-computer     |            │         │       └ {'host': '0.0.0.0', 'port': 8000, 'headless': True, 'reload': False}
open-computer     |            │         └ ()
open-computer     |            └ <function run at 0x7f48df302520>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/cptr/cli.py", line 36, in run
open-computer     |     uvicorn.run(
open-computer     |     │       └ <function run at 0x7f48df664d60>
open-computer     |     └ <module 'uvicorn' from '/home/cptr/.venv/lib/python3.12/site-packages/uvicorn/__init__.py'>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/uvicorn/main.py", line 620, in run
open-computer     |     server.run()
open-computer     |     │      └ <function Server.run at 0x7f48df4bb100>
open-computer     |     └ <uvicorn.server.Server object at 0x7f48df5242c0>
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/uvicorn/server.py", line 75, in run
open-computer     |     return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
open-computer     |            │           │    │             │                      │    │      └ <function Config.get_loop_factory at 0x7f48df6647c0>
open-computer     |            │           │    │             │                      │    └ <uvicorn.config.Config object at 0x7f48df706990>
open-computer     |            │           │    │             │                      └ <uvicorn.server.Server object at 0x7f48df5242c0>
open-computer     |            │           │    │             └ None
open-computer     |            │           │    └ <function Server.serve at 0x7f48df4bb1a0>
open-computer     |            │           └ <uvicorn.server.Server object at 0x7f48df5242c0>
open-computer     |            └ <function run at 0x7f48e0070180>
open-computer     |   File "/usr/local/lib/python3.12/asyncio/runners.py", line 195, in run
open-computer     |     return runner.run(main)
open-computer     |            │      │   └ <coroutine object Server.serve at 0x7f48dbf026c0>
open-computer     |            │      └ <function Runner.run at 0x7f48dfe5a7a0>
open-computer     |            └ <asyncio.runners.Runner object at 0x7f48df5275c0>
open-computer     |   File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
open-computer     |     return self._loop.run_until_complete(task)
open-computer     |            │    │     │                  └ <Task pending name='Task-1' coro=<Server.serve() running at /home/cptr/.venv/lib/python3.12/site-packages/uvicorn/server.py:7...
open-computer     |            │    │     └ <cyfunction Loop.run_until_complete at 0x7f48dbd7d3c0>
open-computer     |            │    └ <uvloop.Loop running=True closed=False debug=False>
open-computer     |            └ <asyncio.runners.Runner object at 0x7f48df5275c0>
open-computer     | > File "/home/cptr/.venv/lib/python3.12/site-packages/cptr/utils/chat_task.py", line 1363, in run_chat_task
open-computer     |     async for event in stream:
open-computer     |               │        └ <async_generator object stream_openai_completions at 0x7f48da79fa40>
open-computer     |               └ {'type': 'text_delta', 'content': 'Hello! '}
open-computer     |   File "/home/cptr/.venv/lib/python3.12/site-packages/cptr/utils/ai.py", line 557, in stream_openai_completions
open-computer     |     for tc in delta.get("tool_calls", []):
open-computer     |               │     └ <method 'get' of 'dict' objects>
open-computer     |               └ {'role': None, 'content': 'Hello! ', 'reasoning_content': None, 'tool_calls': None}
Originally created by @DtDEncryption on GitHub (Jun 17, 2026). Original GitHub issue: https://github.com/open-webui/computer/issues/63 # Background I deployed v0.5.2 cptr with docker, and the provider was set to using Synthetic OpenAI-compatible endpoints. Synthetic is an open-weight model inference service provider, supporting openai and anthropic endpoints. Its docs contain [overview for its models](https://dev.synthetic.new/docs/api/models) and [reference for api format](https://dev.synthetic.new/docs/api/overview). # Issue When choosing Synthetic (synthetic.new) as model service provider, I couldn't use any model other than "hf:zai-org/GLM-4.7-FLASH", "hf:openai/gpt-oss-120b", "hf:Qwen/Qwen3.5-397B-A17B" and "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4". Whenever I tried to send a request to other models like hf:MiniMaxAI/MiniMax-M3, cptr prompted "Error: 'NoneType' object is not iterable". The traceback log is posted at the end. I had confirmed all models mentioned above works well in other clients, such as OpenWebUI, Hermes Agent. # Expectaion Whichever model set in cptr, the chat interface remains fully functional without prompting "Error: 'NoneType' object is not iterable". # Log ``` open-computer | 2026-06-17 01:56:13.511 | ERROR | logging:callHandlers:1762 - Chat task error for message 3abd9293-02af-4c36-b77e-b50debd26dfe open-computer | Traceback (most recent call last): open-computer | open-computer | File "/home/cptr/.venv/bin/cptr", line 10, in <module> open-computer | sys.exit(main()) open-computer | │ │ └ <function main at 0x7f48e010f6a0> open-computer | │ └ <built-in function exit> open-computer | └ <module 'sys' (built-in)> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/cptr/cli.py", line 45, in main open-computer | cli() open-computer | └ <Group cli> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 1524, in __call__ open-computer | return self.main(*args, **kwargs) open-computer | │ │ │ └ {} open-computer | │ │ └ () open-computer | │ └ <function Command.main at 0x7f48dffbb740> open-computer | └ <Group cli> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 1445, in main open-computer | rv = self.invoke(ctx) open-computer | │ │ └ <click.core.Context object at 0x7f48dfdf64b0> open-computer | │ └ <function Group.invoke at 0x7f48e0048680> open-computer | └ <Group cli> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 1912, in invoke open-computer | return _process_result(sub_ctx.command.invoke(sub_ctx)) open-computer | │ │ │ │ └ <click.core.Context object at 0x7f48e03204a0> open-computer | │ │ │ └ <function Command.invoke at 0x7f48dffbb420> open-computer | │ │ └ <Command run> open-computer | │ └ <click.core.Context object at 0x7f48e03204a0> open-computer | └ <function Group.invoke.<locals>._process_result at 0x7f48df664220> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 1308, in invoke open-computer | return ctx.invoke(self.callback, **ctx.params) open-computer | │ │ │ │ │ └ {'host': '0.0.0.0', 'port': 8000, 'headless': True, 'reload': False} open-computer | │ │ │ │ └ <click.core.Context object at 0x7f48e03204a0> open-computer | │ │ │ └ <function run at 0x7f48df302520> open-computer | │ │ └ <Command run> open-computer | │ └ <function Context.invoke at 0x7f48dffba660> open-computer | └ <click.core.Context object at 0x7f48e03204a0> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/click/core.py", line 877, in invoke open-computer | return callback(*args, **kwargs) open-computer | │ │ └ {'host': '0.0.0.0', 'port': 8000, 'headless': True, 'reload': False} open-computer | │ └ () open-computer | └ <function run at 0x7f48df302520> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/cptr/cli.py", line 36, in run open-computer | uvicorn.run( open-computer | │ └ <function run at 0x7f48df664d60> open-computer | └ <module 'uvicorn' from '/home/cptr/.venv/lib/python3.12/site-packages/uvicorn/__init__.py'> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/uvicorn/main.py", line 620, in run open-computer | server.run() open-computer | │ └ <function Server.run at 0x7f48df4bb100> open-computer | └ <uvicorn.server.Server object at 0x7f48df5242c0> open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/uvicorn/server.py", line 75, in run open-computer | return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory()) open-computer | │ │ │ │ │ │ └ <function Config.get_loop_factory at 0x7f48df6647c0> open-computer | │ │ │ │ │ └ <uvicorn.config.Config object at 0x7f48df706990> open-computer | │ │ │ │ └ <uvicorn.server.Server object at 0x7f48df5242c0> open-computer | │ │ │ └ None open-computer | │ │ └ <function Server.serve at 0x7f48df4bb1a0> open-computer | │ └ <uvicorn.server.Server object at 0x7f48df5242c0> open-computer | └ <function run at 0x7f48e0070180> open-computer | File "/usr/local/lib/python3.12/asyncio/runners.py", line 195, in run open-computer | return runner.run(main) open-computer | │ │ └ <coroutine object Server.serve at 0x7f48dbf026c0> open-computer | │ └ <function Runner.run at 0x7f48dfe5a7a0> open-computer | └ <asyncio.runners.Runner object at 0x7f48df5275c0> open-computer | File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run open-computer | return self._loop.run_until_complete(task) open-computer | │ │ │ └ <Task pending name='Task-1' coro=<Server.serve() running at /home/cptr/.venv/lib/python3.12/site-packages/uvicorn/server.py:7... open-computer | │ │ └ <cyfunction Loop.run_until_complete at 0x7f48dbd7d3c0> open-computer | │ └ <uvloop.Loop running=True closed=False debug=False> open-computer | └ <asyncio.runners.Runner object at 0x7f48df5275c0> open-computer | > File "/home/cptr/.venv/lib/python3.12/site-packages/cptr/utils/chat_task.py", line 1363, in run_chat_task open-computer | async for event in stream: open-computer | │ └ <async_generator object stream_openai_completions at 0x7f48da79fa40> open-computer | └ {'type': 'text_delta', 'content': 'Hello! '} open-computer | File "/home/cptr/.venv/lib/python3.12/site-packages/cptr/utils/ai.py", line 557, in stream_openai_completions open-computer | for tc in delta.get("tool_calls", []): open-computer | │ └ <method 'get' of 'dict' objects> open-computer | └ {'role': None, 'content': 'Hello! ', 'reasoning_content': None, 'tool_calls': None}
Author
Owner

@tjbck commented on GitHub (Jun 17, 2026):

Should be addressed with the latest!

<!-- gh-comment-id:4727716483 --> @tjbck commented on GitHub (Jun 17, 2026): Should be addressed with the latest!
Author
Owner

@DtDEncryption commented on GitHub (Jun 17, 2026):

@tjbck Confirmed it's fixed with v0.5.3. Thanks for your support!

<!-- gh-comment-id:4736322547 --> @DtDEncryption commented on GitHub (Jun 17, 2026): @tjbck Confirmed it's fixed with v0.5.3. Thanks for your support!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
open-webui/computer#26
No description provided.