#retriever-error
Sorted by views, then solution_desc, solution, and root_cause length (desc).
2534 issues
执行命令如:我就是执行了一个:openclaw browser extension install 再执行 openclaw browser status 命令就开始报错,系统已经重新安装两次了还是这个问题,谁能帮忙看看这个问题 gateway connect failed: Error: gateway closed (1000): ◇ Error: gateway closed (1000 normal closure): no close reason Gateway target: ws://127.0.0.1:18789 Source: local loopback Config: /home/install/.openclaw/openclaw.json Bind: loopback
Write failed / Edit failed 错误提示频繁出现,但实际文件 100% 写入成功。这是 OpenClaw 工具层响应超时问题,不是文件系统问题。
When a Discord guild has `groupPolicy: allowlist` and a non-empty `channels` config (so `channelAllowlistConfigured = true`), any channel that is **not listed** in `channels` is incorrectly **allowed through** instead of being blocked.
`openclaw doctor` fails on one long-lived installation where `~/.openclaw/agents/main/sessions` contains a 154 MB `sessions.json` and 67 stale `sessions.json.*.tmp` files totaling about 787 MB.
OpenClaw should provide native Codex/ChatGPT OAuth reliability handling by separating quota-window exhaustion from true OAuth credential failure, and by supporting brokered reauth execution when reauthentication is actually required. User-facing goal As a user, I want one reliable ChatGPT/Codex OAuth experience: - if I only hit my rolling usage window, OpenClaw should tell me the quota state and when it renews - if my OAuth refresh token is actually invalid, OpenClaw should tell me that reauth is required - if a bounded host-side reauth adapter exists, OpenClaw should be able to invoke it instead of leaving recovery entirely manual Problem Today, quota exhaustion and unrecoverable OAuth failure can be confused operationally. For example: - rolling usage-window exhaustion should not trigger reauth - `refresh_token_reused` should trigger guided reauth - a normal access-token expiry with a valid refresh token should refresh automatically These are different states, but they are easy to collapse into a single generic "auth failed" workflow. Requested feature set 1. Native quota/auth diagnosis in OpenClaw OpenClaw should distinguish at least: - `ok` - `expiring_soon` - `quota_wait` - `reauth_required` Behavior: - `quota_wait`: do not trigger reauth - `reauth_required`: prompt for or invoke a bounded reauth adapter - normal expired access token + valid refresh token: refresh automatically 2. Native Codex quota display OpenClaw should surface Codex rate-limit state natively, including both the 5-hour and weekly windows. Recommended display format: ```text Codex rate limits 5h: 96%, renews 05:45 AM Weekly: 60%, renews 2026-03-25 3:04 PM ``` Formatting rules: - use system local timezone automatically - 5h window: percent + local time - weekly window: percent + local date and time 3. Brokered reauth execution When OpenClaw determines the state is `reauth_required`, it should support invoking a narrow reauth adapter rather than assuming it must handle browser-based reauth itself. This is especially important for Docker/sandboxed deployments where: - the app can diagnose the problem natively - the actual browser-based OAuth flow needs to run outside the container Conceptually: - native decision inside OpenClaw - bounded external execution via a broker/adapter Control UI impact Yes, this should include Control UI changes. Suggested Control UI behavior: - show the current Codex rate-limit state in a human-readable form - when the state is `quota_wait`, show renewal times instead of suggesting reauth - when the state is `reauth_required`, show a clear guided reauth action if a reauth adapter is available - avoid ambiguous generic auth-failure messaging when the real issue is rolling-window quota exhaustion Why this matters For users, this is one feature set: a more reliable ChatGPT/Codex OAuth experience. Internally, it can still be split into: - native quota/auth diagnosis - optional brokered reauth execution That split keeps the trust boundary clean while delivering one coherent recovery UX. Additional context I implemented a local host-side prototype in a Docker-based OpenClaw sandbox that: - classifies `quota_wait` separately from `reauth_required` - formats local-time 5h/weekly renewal info - auto-triggers a bounded host-side reauth bridge only for `reauth_required` I am not attaching that patch directly here because parts of it are deployment-specific, but it validated the behavior and UX split described above.
If two types of api methods are used (API_KEY + localhost LLM) UI does not allow switching over. It will only allow the type of connection used set in primary methods. example, if it was set to use openai api key, selecting any lm-studio endpoints for API call will fail.
On OpenClaw `2026.4.5`, outbound WhatsApp media sends can return a successful tool result with a real-looking WhatsApp `messageId`, but the recipient only receives the caption/text. The actual attachment never arrives. This affects direct `message` tool sends on WhatsApp.
`/api/generate` works for plain text prompts and simple XML-like prompts, but can return HTTP 500 with `{"error":"EOF"}` when the prompt asks the model to emit `<tool_call>...</tool_call>` style XML output. This reproduces even without using native Ollama tools. The prompt only contains tool-like XML tags as plain text instructions. Possibly related to other Qwen XML/tool-call parsing issues, but this reproduces on `qwen3.5:9b` with `/api/generate` and without native tools.
All `openclaw browser` commands (`start`, `open`, `navigate`) cause the gateway to crash with a WebSocket handshake timeout. Read-only commands like `tabs` and `profiles` work fine.
The built-in `microsoft-foundry` provider can discover/select Anthropic Claude deployments from Azure AI Foundry, but it still normalizes them onto the OpenAI-compatible runtime path (`/openai/v1`, `chat/completions` or `responses`) instead of the Anthropic Foundry path (`/anthropic/v1/messages`). This makes Claude deployments appear selectable in onboarding/config, but real requests fail at runtime (commonly 404).
After upgrading from OpenClaw v2026.3.8 to v2026.3.13, the Feishu WebSocket connection is closed (force) after receiving each message. After the first message, subsequent messages are not received until gateway restart.
The webchat control UI model selector incorrectly prefixes all model IDs with `anthropic/`, ignoring the actual provider name. This causes "model not allowed" errors when switching to non-Anthropic models.
After configuring the QMD memory engine for a multi‑agent setup, any operation that runs the **QMD boot/update pipeline via OpenClaw** fails with: - `qmd boot update failed: SafeOpenError: path is not a regular file under root` - `Memory index failed (<agentId>): path is not a regular file under root` At the same time, QMD works correctly when run **directly** with the documented XDG paths, and `openclaw memory status` reports a valid index under the expected per‑agent state directory. For example, `openclaw memory status` for one agent: ```text Memory Search (assistant) Provider: qmd (requested: qmd) Model: qmd Sources: memory, sessions Indexed: 13/19 files · 13 chunks Dirty: no Store: ~/.openclaw/agents/assistant/qmd/xdg-cache/qmd/index.sqlite Workspace: ~/.openclaw/workspace/assistant By source: memory · 13/13 files · 13 chunks sessions · 0/6 files · 0 chunks Vector: ready Batch: disabled (failures 0/0) ``` This `Store:` path lives under the documented per‑agent state directory (`~/.openclaw/agents/<agentId>/qmd/…`) and I don’t think it should trigger `SafeOpenError`. However, when I run `openclaw memory index --force --verbose`, or when the cron job runs the memory indexer, I consistently get: ```text 🦞 OpenClaw 2026.3.28 (f9b1079) Claws out, commit in—let's ship something mildly responsible. Memory Index (main) Provider: qmd (requested: qmd) Model: qmd Sources: memory (MEMORY.md + ~/.openclaw/workspace/memory/*.md), sessions (~/.openclaw/agents/main/sessions/*.jsonl) 19:39:09+00:00 [memory] qmd boot update failed: SafeOpenError: path is not a regular file under root Memory index failed (main): path is not a regular file under root Memory Index (assistant-1) Provider: qmd (requested: qmd) Model: qmd Sources: memory (MEMORY.md + ~/.openclaw/workspace/assistant-1/memory/*.md), sessions (~/.openclaw/agents/assistant-1/sessions/*.jsonl) 19:39:10+00:00 [memory] qmd boot update failed: SafeOpenError: path is not a regular file under root Memory index failed (assistant-1): path is not a regular file under root Memory Index (assistant-2) Provider: qmd (requested: qmd) Model: qmd Sources: memory (MEMORY.md + ~/.openclaw/workspace/assistant-2/memory/*.md), sessions (~/.openclaw/agents/assistant-2/sessions/*.jsonl) 19:39:10+00:00 [memory] qmd boot update failed: SafeOpenError: path is not a regular file under root Memory index failed (assistant-2): path is not a regular file under root ``` In contrast, running QMD directly inside the same container with the documented env vars works and **does not** raise `SafeOpenError`, for example: ```bash STATE_DIR="${OPENCLAW_STATE_DIR:-$HOME/.openclaw}" export XDG_CONFIG_HOME="$STATE_DIR/agents/assistant/qmd/xdg-config" export XDG_CACHE_HOME="$STATE_DIR/agents/assistant/qmd/xdg-cache" qmd update && qmd embed && qmd status # → succeeds, uses ~/.openclaw/agents/assistant/qmd/xdg-cache/qmd/index.sqlite ``` So the bug appears to be that **OpenClaw’s memory indexer / cron wrapper is invoking QMD with a different (or mismatched) “root” for the safe‑open check than the one that works when QMD is run directly with the documented XDG paths.**
The `message` tool's `send` action always fails with: ``` Error: No active WhatsApp Web listener (account: default). Start the gateway, then link WhatsApp with: openclaw channels login --channel whatsapp --account default. ``` However: - `openclaw channels status --probe` shows: `enabled, configured, linked, running, connected` - Inbound WhatsApp messages are received and routed to sessions correctly - Normal agent replies are delivered to WhatsApp successfully - Only the `message` tool's proactive send (`action=send, channel=whatsapp, target=<phone>`) fails