Skip to content

UX: arkcli doesn't suggest switching profile when plan quota exceeded #10

Description

@huandzh

Problem

When the current default driving plan (e.g., coding-plan) exceeds its usage quota, arkcli +chat and other LLM-driving features fail with a raw API error. The CLI does not inform the user about alternative profiles that may still be available.

Repro

  1. Use a profile whose plan has exceeded quota (e.g., coding-plan_cn-beijing_personal)
  2. Run arkcli +chat "any message"
  3. See a hard error:
arkruntime.create_responses: arkruntime: API error: You have exceeded the 5-hour usage quota. It will reset at 2026-06-27 12:13:19 +0800 CST. We recommend upgrading your plan for more quota, or waiting for the reset.

Expected behavior

When a quota-exhausted API error is returned, arkcli should:

  1. Detect the quota-exceeded error from the API response.
  2. Check if the user has other profiles configured (e.g., platform or agent-plan) that likely have separate quotas.
  3. Display a clear actionable suggestion, for example:

Your current plan "Coding Plan Pro" has exceeded its 5-hour quota (resets at 2026-06-27 12:13).
You have other profiles available that may still have quota:

  • Agent Plan Medium (agent-plan_cn-beijing_personal) — expires 2026-07-24
  • 控制台按量 (platform_cn-beijing_accountwide) — pay-as-you-go

Switch with: arkcli profile use <profile-name>
Or set a different default: arkcli config set default_profile <profile-name>

Why it matters

Without this, users hit a dead end, don't know why it failed, and don't realize they have alternative profiles with separate quota — effectively making the CLI unusable when the primary plan is exhausted, even though working alternatives exist.

Relevant context

arkcli profile list

lists 3 profiles: coding-plan (default, exhausted), agent-plan, platform (pay-as-you-go). The latter two likely have separate, unused quota.


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