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.


Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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