Software
- Pieces OS: 12.5.0 (Flatpak, com.pieces.os)
- Desktop App: 6.0.2 (Flatpak, com.pieces.pfd)
- Pieces CLI: 1.20.1 (uv tool install)
- OS: Arch Linux, Hyprland 0.55.2
Summary
After model catalog discovery succeeds and cloud status reports "Running", every cloud inference request — CLI streaming, CLI synchronous REST, and direct SDK synchronous REST — times out silently after 60 seconds. This affects both Google and OpenAI models, ruling out a provider-specific outage.
What works
pieces login reports Signed in as <user>, Cloud status: Running (interactive PTY, ~2.6s)
pieces list models shows the full cloud model catalog (PTY selector)
- Desktop log at
~/.local/share/com.pieces.pfd/production/logs/log-*.txt shows ModelInventoryNotifier - fetched 1 platforms, 4 providers and ModelsNotifier hydrated with 41 built-in models including cloud entries
- Desktop persists the selected model from CLI: log records
CopilotRuntimeConfigurationNotifier - Initialized with selectedModelId: gemini-2.5-flash_Google
os_server is listening on 127.0.0.1:39300 (ss -tpn confirms)
- Host can reach
https://portal.pieces.app/ with TLS verification
What fails: cloud inference (all paths)
1. CLI streaming ask
$ pieces ask 'Reply with only CLOUD-OK.'
No output; process connects to os_server on 127.0.0.1:39300 (ss -tpn confirms ESTABLISHED) but stays silent. timeout 60 pieces ask '...' exits 124 after 60s in a PTY with remain-on-exit on. Pane is dead with no response or error text.
2. CLI SDK synchronous question
Using the CLI's own Python 3.13 venv (/home/n4s5ti/.local/share/uv/tools/pieces-cli/bin/python):
from pieces._vendor.pieces_os_client.wrapper.client import PiecesClient
client = PiecesClient(connect_websockets=False)
_ = client.host # resolves http://127.0.0.1:39300
client.model_name = "Gemini-2.5 Flash Chat Model"
response = client.copilot.question("Reply with only CLOUD-OK.")
This calls client.qgpt_api.question() (REST, not websocket). Model ID resolves (ab42f606-34ea-4419-869d-e6fcae7b7f3d). A 60-second timeout wrapper kills it with exit 124; no stdout/stderr and no error from the question API.
3. Cross-provider test (OpenAI)
Same Python SDK path with client.model_name = "GPT-4o Mini Chat Model" (model ID c78b0642-cf35-44c5-9faf-77cf9337b46f). Also times out after 60 seconds with no response/error.
Expected behavior
client.copilot.question("Reply with only CLOUD-OK.") should receive a bounded completion or an actionable error (e.g., subscription, quota, routing) from the Pieces OS QGPT API.
Logs
Desktop log (fresh interval after model snapshot) at line 51200 of the daily log:
[2026-07-11T10:59:34.805062] ModelInventoryNotifier - fetchInventory(refresh: true)
Catalog populated successfully; model gemini-2.5-flash_Google updated at line 51944. No PipelineStreamException(503) or API error in the fresh interval. The only inventory error is a later API error 504: Models inventory timed out after 2 minutes at line 51303 (from a subsequent launch), which is separate from the inference-timeout path.
Reproducer steps
- Confirm
os_server on 127.0.0.1:39300 and pieces login reports Cloud status: Running
- Select a cloud model:
pieces list models -> choose Gemini-2.5 Flash Chat Model
- Run:
timeout 60 /home/n4s5ti/.local/share/uv/tools/pieces-cli/bin/python -c 'from pieces._vendor.pieces_os_client.wrapper.client import PiecesClient; client = PiecesClient(connect_websockets=False); _ = client.host; client.model_name = "GPT-4o Mini Chat Model"; client.copilot.question("Reply with only CLOUD-OK.")'
- Observe exit 124 and no output/error within the timeout
Prior modifications (disclosed)
The Pieces OS deployment's local inference libraries (libllama_inference_cuda.so, libllama_inference_vulkan.so, libonnxinference.so, libonnxruntime.so) are set to mode 000 to enforce cloud-only use. libruntime_native_agentic_engine.so is at 755. This permission policy was applied before the current test interval and the model catalog was fetched successfully under it; it does not affect REST-based QGPT question calls.
Software
Summary
After model catalog discovery succeeds and cloud status reports "Running", every cloud inference request — CLI streaming, CLI synchronous REST, and direct SDK synchronous REST — times out silently after 60 seconds. This affects both Google and OpenAI models, ruling out a provider-specific outage.
What works
pieces loginreportsSigned in as <user>,Cloud status: Running(interactive PTY, ~2.6s)pieces list modelsshows the full cloud model catalog (PTY selector)~/.local/share/com.pieces.pfd/production/logs/log-*.txtshowsModelInventoryNotifier - fetched 1 platforms, 4 providersandModelsNotifierhydrated with 41 built-in models including cloud entriesCopilotRuntimeConfigurationNotifier - Initialized with selectedModelId: gemini-2.5-flash_Googleos_serveris listening on127.0.0.1:39300(ss -tpnconfirms)https://portal.pieces.app/with TLS verificationWhat fails: cloud inference (all paths)
1. CLI streaming ask
No output; process connects to
os_serveron127.0.0.1:39300(ss -tpnconfirms ESTABLISHED) but stays silent.timeout 60 pieces ask '...'exits 124 after 60s in a PTY withremain-on-exit on. Pane is dead with no response or error text.2. CLI SDK synchronous question
Using the CLI's own Python 3.13 venv (
/home/n4s5ti/.local/share/uv/tools/pieces-cli/bin/python):This calls
client.qgpt_api.question()(REST, not websocket). Model ID resolves (ab42f606-34ea-4419-869d-e6fcae7b7f3d). A 60-secondtimeoutwrapper kills it with exit 124; no stdout/stderr and no error from the question API.3. Cross-provider test (OpenAI)
Same Python SDK path with
client.model_name = "GPT-4o Mini Chat Model"(model IDc78b0642-cf35-44c5-9faf-77cf9337b46f). Also times out after 60 seconds with no response/error.Expected behavior
client.copilot.question("Reply with only CLOUD-OK.")should receive a bounded completion or an actionable error (e.g., subscription, quota, routing) from the Pieces OS QGPT API.Logs
Desktop log (fresh interval after model snapshot) at line 51200 of the daily log:
Catalog populated successfully; model
gemini-2.5-flash_Googleupdated at line 51944. NoPipelineStreamException(503)orAPI errorin the fresh interval. The only inventory error is a laterAPI error 504: Models inventory timed out after 2 minutesat line 51303 (from a subsequent launch), which is separate from the inference-timeout path.Reproducer steps
os_serveron127.0.0.1:39300andpieces loginreportsCloud status: Runningpieces list models-> choose Gemini-2.5 Flash Chat Modeltimeout 60 /home/n4s5ti/.local/share/uv/tools/pieces-cli/bin/python -c 'from pieces._vendor.pieces_os_client.wrapper.client import PiecesClient; client = PiecesClient(connect_websockets=False); _ = client.host; client.model_name = "GPT-4o Mini Chat Model"; client.copilot.question("Reply with only CLOUD-OK.")'Prior modifications (disclosed)
The Pieces OS deployment's local inference libraries (
libllama_inference_cuda.so,libllama_inference_vulkan.so,libonnxinference.so,libonnxruntime.so) are set to mode000to enforce cloud-only use.libruntime_native_agentic_engine.sois at755. This permission policy was applied before the current test interval and the model catalog was fetched successfully under it; it does not affect REST-based QGPT question calls.