Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[bug] --config <profile> silently ignores stored credentials; exits 0 unauthenticated

Open
#229 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
node.js, typescript
Domain
cli

Research direction

Start by tracing the CLI's global --config option handling and the profile-loading path used by config show and auth status. Reproduce with a stored, non-active profile, then verify the commands load its credentials or fail with a non-zero error instead of printing generic output and exiting 0.

Written by the indexing model from the issue text.

Description

Environment

  • CLI: bl 2.0.1
  • Skill: 2.0.1
  • Node: v26.9.0
  • OS: macOS 26.6.2 (Darwin 25.6.0, arm64)
  • Region: intl (ap-southeast-1)

Reproduce

# Precondition: profile "token-plan" is stored in ~/.bailian/config.json with
# api_key, base_url, workspace_id and a console token, but is NOT the active profile.

# 1. Address it with the documented --config global flag
bl --config token-plan config show
bl --config token-plan auth status

# 2. Activate the very same profile and repeat
bl config use --name token-plan
bl config show
bl auth status

Expected

--config <profile> selects and loads that profile's credentials, as documented
("Use a config profile from ~/.bailian/config.json"). Step 1 and step 2 should
report the same api_key / base_url / console gateway for the same profile.

Actual

Step 1 emits no config values at all — config show falls through to the
generic welcome/command list, and auth status reports the profile as
unauthenticated. Step 2 prints the credentials correctly:

api_key: [REDACTED]
base_url: https://token-plan.ap-southeast-1.maas.aliyuncs.com
workspace_id: [REDACTED]
Config: token-plan
  API key (model):  config  [REDACTED]
  Console gateway:  config  [REDACTED]  (ap-southeast-1, international)

The profile is fully populated; only the --config addressing path fails to load it.

Full output

$ bl --config token-plan config show
>>> no key/value lines emitted; the generic command list is printed instead

$ bl --config token-plan auth status
>>> generic command list printed; profile reported as unauthenticated

Exit code: 0

The exit code is 0, so this is not even detectable as a failure by scripted
callers. An agent or CI wrapper that passes --config silently runs
unauthenticated (or against the wrong profile) rather than erroring out.

JSON error (if any)

None — the command exits 0 and emits no error object, so there is nothing for a
caller to branch on.

Already tried

  • bl update (1.28.0 → 2.0.1) and bl skill update; CLI and skill versions
    aligned at 2.0.1 before reproducing
  • Reproduced on two different non-active profiles: the pre-existing
    token-plan, and a freshly created profile produced by
    bl auth login --console --console-site international --config <name>
  • Confirmed both profiles work immediately after bl config use --name <profile>,
    then break again when addressed via --config
  • Eliminated env-var precedence as a cause: bl config show documents
    flag > env > config, and the repro was run with DASHSCOPE_API_KEY fully
    unset from the environment, so nothing was shadowing the stored key

Notes

  • Frequency: always — deterministic, reproduced repeatedly on both profiles
  • Invoked via: agent (Qwen Code) driving bl non-interactively
  • Impact: multi-profile workflows are effectively unusable.
    bl auth login --console --config <name> does create a fully populated
    profile, but that profile cannot then be used via --config. The only way to
    reach it is bl config use --name <name>, which changes global state and
    disrupts whatever profile was in active use — so the flag's stated purpose
    ("Use a config profile") is not achievable.
  • Suggested fix: either make --config load the named profile's credentials
    as documented, or fail loudly (non-zero exit + explicit message) when the
    named profile cannot be resolved. Silently exiting 0 with unauthenticated
    behaviour is the worst of the two outcomes for automation.
  • Related observation (separate from this bug, reporting only in case it is the
    same root cause): bl auth login appears to reset workspace_id on the
    target profile back to the account's default workspace, even after it had been
    set explicitly with bl config set --key workspace_id. We observed it revert
    once and had to re-apply the value.
  • Possibly related open issue: #131 — same "config silently never takes effect"
    class of symptom, different mechanism.
Dominant language
TypeScript
Stars
333
Forks
28
Avg merge
1d 5h
Merged PRs (30d)
37

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from modelstudioai/cli

All issues in modelstudioai/cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.