Skip to content

macOS onboarding can finish without working inference and greets new users with a raw auth error #100286

Description

@steipete

Problem

The macOS app's first-run flow can finish "setup" without working inference. The Crestodian gate only checks that config was authored (wizard metadata or gateway auth), not that a model actually answers — so the very first agent chat can greet a new user with a raw error:

Something went wrong — No API key found for provider "openai". Auth store: …/openclaw-agent.sqlite …

Additional first-run issues observed while walking the flow on a clean macOS VM:

  • The Local/Remote page shows a permanent discovery spinner ("Searching for nearby gateways…"), which reads as "the app is stuck loading" instead of a choice.
  • When several AI credentials exist on the machine (Claude Code, Codex, Gemini CLI, API keys), there is no way to see or choose between them; the conversation silently picks the first.
  • No manual API-key path exists in the app when nothing is detected.
  • Nothing is ever live-tested: a logged-in-but-broken CLI (expired subscription, misconfig) is only discovered at first chat.
  • Install-page errors and chat errors show raw strings with no docs link; there are no confirmations when quitting mid-install.
  • Crestodian (the always-works setup helper) is only reachable during onboarding, not later.

Proposal

  • Make inference the one gated onboarding step: a structured "Connect your AI" page that detects reusable access (env keys, Claude Code, Codex, Gemini CLI), live-tests the best candidate with a real completion, persists config only after the test passes, auto-falls back down the ladder on failure, and offers a verified manual API-key step (Anthropic/OpenAI/Google) when nothing works.
  • Gateway RPCs so GUI clients drive the same ladder as openclaw crestodian setup: crestodian.setup.detect / crestodian.setup.activate (additive protocol).
  • Connection page: "On this Mac (Recommended)" preselected, quiet no-spinner discovery, remote options collapsed, "Set up later" as a link.
  • Install page: sequential step checklist with a single active spinner, friendly error card with retry + docs.openclaw.ai link, close-confirmation while work is in flight.
  • Keep "Meet your agent" in the dialog (it cannot hit the auth error anymore) and open the main chat on Finish.
  • Add Crestodian as a Settings pane so users can always talk to something that works.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Emergency: data loss, security bypass, crash loop, or unusable core runtime.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.impact:ux-release-blockerA non-technical user is blocked without terminal, logs, config, or support.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.maintainerMaintainer-authored PRmaturity:stableIssue affects a taxonomy feature currently scored M4/M5.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions