Skip to content

Cloud inference requests timeout across providers despite catalog/auth working (Linux/Flatpak, Pieces OS 12.5.0, Desktop 6.0.2, CLI 1.20.1) #1089

Description

@n4s5ti

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

  1. Confirm os_server on 127.0.0.1:39300 and pieces login reports Cloud status: Running
  2. Select a cloud model: pieces list models -> choose Gemini-2.5 Flash Chat Model
  3. 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.")'
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions