Troubleshooting FAQ

This is the “get unstuck fast” guide built from real implementation issues across wallet + wardrobe flows. No secrets, no internals you shouldn’t see — just practical fixes.

Quick triage order: 1) Wallet auth/status → 2) API key file exists → 3) Quote freshness → 4) Balance/funds → 5) Retry with explicit confirmation.

Most common issues

1) “Auth expired” on Coinbase wallet commands

Re-auth with OTP, then verify status.

npx awal auth login [email protected]
npx awal auth verify <flowId> <otp>
npx awal status --json
2) AgentWardrobe returns 401/403 unauthorized

Your API key is missing/invalid or not being read from credentials.

node skills/agentwardrobe/agentwardrobe-setup.js
# then test
node skills/agentwardrobe/agentwardrobe-cli.js wardrobe

Confirm credential file exists at ~/.openclaw/credentials/agentwardrobe.json.

3) Quote works, purchase fails with quote expired

Quotes are short-lived. Regenerate quote and purchase quickly after approval.

node skills/agentwardrobe/agentwardrobe-cli.js quote <itemId>
node skills/agentwardrobe/agentwardrobe-cli.js buy <quoteId>
4) Purchase fails with insufficient funds

Check USDC balance and wallet chain, then retry with smaller amount or fund wallet.

npx awal balance --json
npx awal status --json
5) Agent keeps suggesting duplicates

Prompt it to check wardrobe first and enforce no-duplicate rule before quote/purchase.

Use current wardrobe first.
Avoid duplicates.
Show top 3 options, then wait for approval before buying.
6) Current outfit appears empty or wrong

Run wardrobe + outfit checks, then re-apply wear/remove actions for drifted state.

node skills/agentwardrobe/agentwardrobe-cli.js wardrobe
node skills/agentwardrobe/agentwardrobe-cli.js outfit
7) “Command not found” or skill CLI fails

Run from workspace root and use full Node command path shown in docs.

cd ~/.openclaw/workspace
node skills/agentwardrobe/agentwardrobe-cli.js stores
node skills/coinbase-wallet/coinbase-wallet-cli.js status
8) Behavior changed after endpoint/domain updates

This has happened before. Verify your skill is pointed to the current production API URL, not an old local/tunnel address.

9) Should I let the agent auto-buy?

Not initially. Use quote → explicit human approval → purchase. It’s slower by seconds and safer by miles.

10) Minimal smoke test to confirm everything works
# Wallet
npx awal status --json
npx awal balance --json

# Wardrobe public + auth
node skills/agentwardrobe/agentwardrobe-cli.js stores
node skills/agentwardrobe/agentwardrobe-cli.js wardrobe

# Safe transaction path
node skills/agentwardrobe/agentwardrobe-cli.js quote <itemId>
# (approve)
node skills/agentwardrobe/agentwardrobe-cli.js buy <quoteId>

Copy/Paste Diagnostics Script

Run this from your OpenClaw workspace root. It prints PASS/FAIL checks for the most common blockers.

#!/usr/bin/env bash
set -u

echo "== AgentWardrobe Diagnostics =="

pass() { echo "✅ $1"; }
fail() { echo "❌ $1"; }
warn() { echo "⚠️  $1"; }

# 1) Workspace sanity
if [ -d "skills/agentwardrobe" ] && [ -d "skills/coinbase-wallet" ]; then
  pass "Skill folders found"
else
  fail "Missing skill folders (run from ~/.openclaw/workspace)"
fi

# 2) Coinbase wallet status
if npx awal status --json >/tmp/aw_status.json 2>/tmp/aw_status.err; then
  pass "Coinbase wallet status reachable"
  if grep -q '"authenticated":true' /tmp/aw_status.json; then
    pass "Wallet authenticated"
  else
    warn "Wallet not authenticated (run: npx awal auth login ... )"
  fi
else
  fail "awal status failed"
  sed -n '1,3p' /tmp/aw_status.err
fi

# 3) Balance check
if npx awal balance --json >/tmp/aw_balance.json 2>/tmp/aw_balance.err; then
  pass "Wallet balance command works"
else
  fail "Wallet balance check failed"
  sed -n '1,3p' /tmp/aw_balance.err
fi

# 4) AgentWardrobe credentials file
if [ -f "$HOME/.openclaw/credentials/agentwardrobe.json" ]; then
  pass "Credential file exists"
else
  fail "Missing credentials file: ~/.openclaw/credentials/agentwardrobe.json"
  warn "Run: node skills/agentwardrobe/agentwardrobe-setup.js"
fi

# 5) Public catalog call
if node skills/agentwardrobe/agentwardrobe-cli.js stores >/tmp/aw_stores.out 2>/tmp/aw_stores.err; then
  pass "Public stores endpoint works"
else
  fail "Public stores endpoint failed"
  sed -n '1,3p' /tmp/aw_stores.err
fi

# 6) Authenticated wardrobe call
if node skills/agentwardrobe/agentwardrobe-cli.js wardrobe >/tmp/aw_wardrobe.out 2>/tmp/aw_wardrobe.err; then
  pass "Authenticated wardrobe endpoint works"
else
  fail "Wardrobe endpoint failed (likely API key/auth issue)"
  sed -n '1,4p' /tmp/aw_wardrobe.err
fi

# 7) Optional: quote smoke test
if [ "${1:-}" = "--with-quote" ] && [ -n "${2:-}" ]; then
  ITEM_ID="$2"
  echo "Running quote test for item: $ITEM_ID"
  if node skills/agentwardrobe/agentwardrobe-cli.js quote "$ITEM_ID" >/tmp/aw_quote.out 2>/tmp/aw_quote.err; then
    pass "Quote flow works"
  else
    fail "Quote flow failed"
    sed -n '1,4p' /tmp/aw_quote.err
  fi
else
  warn "Quote test skipped. Use: bash diag.sh --with-quote <itemId>"
fi

echo "== Diagnostics complete =="

← Back to AgentWardrobe hub