Salesforce CLIで第二世代管理パッケージのバージョンを作成しようとしたら`Version create.... done`と表示されるが作成されなかったとき

# 1. やっていたこと

- Salesforce CLIで第二世代管理パッケージのバージョンを作成しようとした
```shell
sf package version create --package PACKAGE_NAME --code-coverage --installation-key KEY --wait 10
```
```:output
Version create.... ⣷
Version create.... done
```
- `Version create.... done`と表示されてはいるが...コマンドの戻り値は`1`だったので何かしらエラーになっている様子
```shell
% echo $?
1
```
- パッケージバージョンの一覧を表示してみても新しいバージョンは表示されない
```shell
sf package version list
```

- 正しくパッケージバージョンが作成された場合は以下のような表示がされる
```:output
Version create.... Create version status: Success
Successfully created the package version [08****************]. Subscriber Package Version Id: 04****************
Package Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04****************
As an alternative, you can use the "sf package:install" command.
```

# 2. 試したこと

- 今回実施したコマンドには以下のオプションがあるので、それを付与して表示が変わるか試してみた
  - `--json`
  - `--verbose`
- `--json`を付与した場合
```shell
sf package version create --package PACKAGE_NAME --code-coverage --installation-key KEY --wait 10 --json
```
```json:output
{
  "code": 1,
  "context": "PackageVersionCreateCommand",
  "commandName": "PackageVersionCreateCommand",
  "message": "この組織は 1 日の制限に達しているため、package2 バージョンの作成要求に失敗しました",
  "name": "REQUEST_LIMIT_EXCEEDED",
  "status": 1,
  "stack": "REQUEST_LIMIT_EXCEEDED: この組織は 1 日の制限に達しているため、package2 バージョンの作成要求に失敗しました\n    at HttpApi.getError (/Users/${username}/.local/share/sf/node_modules/jsforce/lib/http-api.js:252:12)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async /Users/${username}/.local/share/sf/node_modules/jsforce/lib/http-api.js:122:23\n    at async Tooling.create (/Users/${username}/.local/share/sf/node_modules/jsforce/lib/connection.js:796:133)\n    at async PackageVersionCreate.packageVersionCreate (/Users/${username}/.local/share/sf/node_modules/@salesforce/packaging/lib/package/packageVersionCreate.js:486:30)\n    at async PackageVersion.create (/Users/${username}/.local/share/sf/node_modules/@salesforce/packaging/lib/package/packageVersion.js:92:30)\n    at async PackageVersionCreateCommand.run (/Users/${username}/.local/share/sf/node_modules/@salesforce/plugin-packaging/lib/commands/package/version/create.js:60:24)\n    at async PackageVersionCreateCommand._run (/Users/${username}/.local/share/sf/node_modules/@oclif/core/lib/command.js:117:22)\n    at async Config.runCommand (/usr/local/lib/sf/node_modules/@oclif/core/lib/config/config.js:329:25)\n    at async run (/usr/local/lib/sf/node_modules/@oclif/core/lib/main.js:89:16)",
  "exitCode": 1,
  "warnings": []
}
```
- `--verbose`を付与した場合
```shell
sf package version create --package PACKAGE_NAME --code-coverage --installation-key KEY --wait 10 --verbose
```
```json:output
Version create...
Error (1): この組織は 1 日の制限に達しているため、package2 バージョンの作成要求に失敗しました
```
- どちらのオプションを付与した場合でも、エラー内容が表示された
- 今回のエラーは、package2バージョンの作成要求に対する1日の制限に達したためということが分かった

# 3. わかったこと

- 通常の表示でエラー内容が分からない場合には、`--json`や`--verbose`を付与すると良さそう
- 上記のオプションを付与しなくても、エラー時にはエラー内容を表示するようになってほしい

# 4. Appendix

## 4.1 REQUEST_LIMIT_EXCEEDED: この組織は 1 日の制限に達しているため、package2 バージョンの作成要求に失敗しました

- Trailblazer Communityに以下の投稿があった
  - https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D53A00003PYJgrSAH
> What is the output that you are seeing when you run the force:api:limits:display for Package2VersionCreates ? The number of package versions that you can create in a day is equal to the daily scratch org limit.
- 以下のコマンドを実行して確認してみた
```shell
sf limits api display -o DEVHUB
```
```:output
 Name                                        Remaining Max       
 ─────────────────────────────────────────── ───────── ───────── 
~~~ 省略 ~~~
 Package2VersionCreates                      0         6         
~~~ 省略 ~~~
```
- `Package2VersionCreates`という制限があり、最大`6`で残り`0`であることが分かった


おわり。