Recurring issues & bugs¶
Named problems that span sessions or tools. Close or downgrade when resolved.
Open¶
Hermes — dual xAI OAuth (personal grok.com vs Crusty xai-oauth) — 2026-06¶
- Symptom: Personal grok.com scheduled tasks (band mail, meals) and Hermes
xai-oauthon the dedicated laptop use separate xAI browser sessions/accounts.xurluses a third auth surface (X dev app OAuth). Session confusion can cause failed imagine, wrong account, or silent tool failures. - Status (2026-06-06): Aye Robot daily post working — OAuth split is background hygiene, not blocking the morning pipeline.
- Counterpoint: Split is intentional for identity separation — don't merge personal and Crusty machines; do consolidate or clearly scope auth per machine before the fleet grows.
- Next (hygiene cadence): Scoped per-provider profiles; re-auth when sessions stale. Active focus: projects/crusty#aye-robot-daily-post--live-quality-tuning-2026-06 — monitor + adjust output quality. Rotation stays in private notes.
- Links: projects/crusty, projects/ayerobot-comic, Grok-Brief
Aye Robot — image + Telegram + X (historical debugging class)¶
- Status (2026-04-27; routing economics 2026-04-29): On Crusty, grok-imagine + Telegram +
xurlare the live Aye Robot stack; E2E brainstorm → pick → Telegram → approve → post verified (2026-04-27). Model routing: two-tiergrok-4.20orchestrator was live through 2026-04-29, then cost rollback towardgrok-4-1-fast-reasoning— Aye Robot token volume; see projects/crusty Steady-state economics. Morning Telegram image delivery was intermittent — job tweaked 2026-04-29 (next run validates). Bring-up history:post_comic_test.pydry-run; steady state =xurl. Next build (spec on projects/ayerobot-comic#next-concrete-step--mentions-listen-path): mentions listen path (scheduled read → Telegram digest → optional gatedxurl reply). Parallel: post path ~1 week reliability. Consumer-web posting path remains dead (policy). projects/aye-robot-crusty-paused-x-automation. - OpenClaw integration gotchas (resolved on host, keep for handoffs): do not put
x_apiinopenclaw.json(not in schema) — X secrets only in.env. Do not useimageGenerationModelfor xAI comic panels — use the grok-imagine workspace skill, not built-inimage_generate. Do not putgrok-imagine-imageundermodels.providers.xai.modelswith extra keys — image gen does not use that path. Exec: one absolute-path command per invocation — nocd &&chains (OpenClaw preflight rejects compounds). Rate limits: xAI TPM was a real truncation failure mode — confirm console limits if output clips mid-response. - X dev-app config trap:
xurl(and any X API v2 client) calls will returnclient-forbiddenunless the developer app is set to Pay-per-use package and Production environment. Both settings required together; default project state after app creation is not sufficient. → projects/aye-robot-crusty-paused-x-automation (Next steps — switch transport to xurl). - Reframe: Earlier 401 / "send vs chat" symptoms were often downstream of silent tool-call failures at the agent gateway — outbound actions never ran cleanly while inbound still worked. Do not assume a credential bug until gateway version and raw tool errors are checked.
- Reframe, post-gateway: Shell / exec does run — prove it via the agent's session-log audit trail (exec tool, exit code, duration), not by grepping the gateway log alone. Ad-hoc Telegram echo tests without session-log alignment are weak ground truth.
- Why inbound vs outbound diverge: Receiving uses the main Telegram pipeline; outbound from skills or ad-hoc code may use different env or broken tool params.
- Split the failures when debugging: (1) Image 401 → provider key / header / visibility in scheduler context. (2) Telegram 401 → bot token in the send URL. (3) Wrong chat/channel identifier → usually 400, not 401.
- Debug checklist (no secrets in logs): Match inbound and outbound token sources; curl from a login shell and from the scheduler context; align one canonical env; confirm the running agent service version matches the CLI you think you installed.
- Key-sourcing pattern (actual, confirmed 2026-04-20): On Crusty,
.envis the single secret source; the OpenClaw config is the wiring layer that names which env var feeds which skill via${env:VAR}expansion. Do not duplicate secrets into shell profile files (.zshrc/.bash_profile). Earlier wiki wording ("OpenClaw config file is the runtime source of truth over shell.env") was aspirational and did not match reality — the xAI key has always lived in.env. This item files the aspirational-vs-actual drift explicitly so future handoffs don't inherit the wrong model. The canonical pattern going forward: one.env→ config references via${env:VAR}→ skills read from the config. Incoming X API OAuth 1.0a keys (API Key, API Key Secret, Access Token, Access Token Secret) follow this pattern — seepost_comic_test.pyreference implementation and the v2 port plan on projects/aye-robot-crusty-paused-x-automation. - Auth-model trap for X API v2:
POST /2/tweetsis a user-context endpoint — app-only Bearer tokens cannot call it. Posting needs OAuth 2.0 Auth Code + PKCE (what X's officialxurlCLI uses viaxurl auth oauth2) or OAuth 1.0a user-context (four keys) (what the bring-uppost_comic_test.pyused). Bearer only works on read-mostly endpoints that support app-only auth. If a posting call 401s with an otherwise-valid Bearer token, the auth model is wrong, not the token. → projects/aye-robot-crusty-paused-x-automation (Next steps — switch transport to xurl). - Next step if resuming: X API v2, manual post, or a different channel — not browser-driven consumer-web automation, which is X-policy-prohibited (permanent-suspension offense) regardless of engineering stability. See Policy posture on projects/aye-robot-crusty-paused-x-automation.
- Links: projects/crusty, projects/ayerobot-comic, projects/aye-robot-crusty-paused-x-automation, projects/openclaw-autonomy-org, glossary
OpenClaw — session log is the exec audit trail (not the gateway log)¶
- Rule: For "did the shell tool actually run," use the agent's per-session log (exec tool, exit code, duration). The gateway log is not the audit trail for that proof.
- Links: projects/crusty (known issues), projects/aye-robot-crusty-paused-x-automation
OpenClaw — tool-adapter class failure with reasoning-model function-call format¶
- Umbrella: An earlier OpenClaw service build had a tool adapter that could mis-handle function-call-shaped output from xAI reasoning models: wrong parameter names, delimiter leakage into string fields. Symptom: tool calls fail silently; the model may confabulate success because errors aren't surfaced clearly.
- Contributing factor: CLI-vs-service version skew — a newer CLI can ship alongside an older running service if the launch agent hasn't been reloaded.
- Mitigation: Restart the gateway to pick up the current installed version; confirm the service reports the expected version. For shell, prefer the session-log audit trail or an independent disk/API check — not only Telegram or the gateway log. Hedge (2026-04-27; paused 2026-04-29 for economics): premium
grok-4.20orchestrator on projects/crusty — rolled back togrok-4-1-fast-reasoning-heavy workloads 2026-04-29; re-enable when token budget / stakes justify. If a fast reasoning model regresses on complex tool use, the routing table is still the right place to fix it. - Links: projects/crusty (Model routing), session-log subsection above, projects/aye-robot-crusty-paused-x-automation
Resolved¶
-
Crusty — single-model stack (2026-04-21) → two-tier live (2026-04-27) → economics rollback (2026-04-29): Running
grok-4-1-fast-reasoningeverywhere was inadequate for the orchestrator under a Telegram-gated posting loop — the confabulation / ground-truth class the wiki had flagged. Fixed 2026-04-27 with per-role routing on Crusty (orchestratorgrok-4.20-0309-reasoning, default workersgrok-4-1-fast-reasoning); X path =xurl(OAuth 2.0 PKCE, dev app), notpost_comic_test.py; Aye Robot gate unlocked with E2E livexurlafter approval. 2026-04-29: orchestrator premium tier paused — back towardgrok-4-1-fast-reasoning-primary for Aye Robot token cost (projects/crusty Steady-state economics). Pattern / pricing / “orchestrator is the expensive tier” rationale still on projects/crusty Model routing; optionalgrok-4-1-fast-non-reasoningsub-tier still Phase 5. Links: tool-adapter hedge above, projects/aye-robot-crusty-paused-x-automation. -
OpenClaw gateway / parser upgrade: Gateway upgraded to the current stable build, addressing the tool-adapter / function-call parsing failure mode. Exec execution is corroborated via the session-log audit trail. Does not solve unattended X posting via consumer-web UI — see projects/aye-robot-crusty-paused-x-automation.
Related¶
- index
- projects/aye-robot-crusty-paused-x-automation — Aye Robot pause (2026) and verified vs stalled stack