# CLI messages

> Every answer UpFork's registry can give the shadcn CLI, what it means, and what to do about it.

When UpFork's registry can't hand the shadcn CLI a product, it answers with a short title and a sentence saying why
and what to do, and the CLI prints both. Here is every title it can print, what it means, and what to do.

## Your token

| Title | When | What to do |
| --- | --- | --- |
| `Token required` | The command sent no token: `UPFORK_TOKEN` isn't set, or `components.json` doesn't pass it on | Follow [Install components](https://upfork.dev/docs/install): create a token, put it in `.env.local` as `UPFORK_TOKEN`, and add UpFork to `components.json`. The message also says what the product needs: an account for a free one, the buyer's token for a paid one, a plan for a plan product. |
| `Invalid token` | The token isn't one of UpFork's (they start with `upf_` and are 47 characters long), or it was deleted or mistyped | Copy it again, or [create a new one](https://upfork.dev/account/tokens), and put it in `.env.local` as `UPFORK_TOKEN`. |
| `Account blocked` | The account the token belongs to is blocked, so its tokens don't work | [Contact UpFork](https://upfork.dev/contact) to ask why. |

## The product

| Title | When | What to do |
| --- | --- | --- |
| `Not found` | There's no product called `<name>`. Names are lower-case letters, digits and hyphens: the last part of the product's address | Check the name against the product's page, `https://upfork.dev/products/<name>`. |
| `No longer available` | The product isn't on sale any more | If you bought it, its code stays yours: download it from [your purchases](https://upfork.dev/account). |
| `Not installable` | It's a full-stack project, an app, desktop software or a script | It's downloaded, not installed: get it from its page ([Templates and downloads](https://upfork.dev/docs/downloads)). |
| `Not a shadcn item` | It's plain HTML, CSS and JS, not a React component | Download it, or copy its code, from its page. |
| `No code` | It's delivered as downloads only | Get it from its page. |

These are checked before your token, so you see them even with no token set up.

## Buying and plans

| Title | When | What to do |
| --- | --- | --- |
| `Not bought` | The product is paid, and the token's account hasn't bought it | Buy it on its page, or use the token of the account that bought it, then run the command again. |
| `Not in your plan` | The product comes with a plan, and the token's account is on an earlier one | See the plans on the [pricing page](https://upfork.dev/pricing). |
| `Plan limit reached` | Your plan's downloads for today (or this month) are used up | They come back at 00:00 UTC (monthly ones on the 1st). The message says which plan gives you more. See [Plans and limits](https://upfork.dev/docs/plans). |

## Too many, or no answer

| Title | When | What to do |
| --- | --- | --- |
| `Too many requests` | Too many installs from your address in a short time | Wait a minute, then run the command again. |
| `Registry unavailable` | UpFork's registry can't be reached right now | Try again in a minute. |

## For developers

If you sell on UpFork, two more can appear while you install your own product:

- **`Not on sale`:** your product is a draft or archived, UpFork took it off the site, or the plan it comes with isn't
  launched yet. Publish it in its editor's Publish step, then run the command again.
- **`Not found`** for a draft is what everyone else sees; you see `Not on sale` instead.

To try an install before publishing, use the try link from your product's editor: see
[Selling a component](https://upfork.dev/sell/guide).

Page: https://upfork.dev/docs/cli-messages
