Gaps & Troubleshooting
What the CLI covers β and what it doesnβt
The dodil vbase CLI focuses on the GA serverless flow and the common Milvus operations. Some API capabilities have no first-class CLI command:
| Capability | CLI | Alternative |
|---|---|---|
| Allocate / list / use / drop databases | Yes β db commands | β |
| Create / list / show / load / release / drop collections | Yes β collection | β |
Create / drop index (FLAT/HNSW/IVF_FLAT/IVF_SQ8, L2/IP/COSINE) | Yes β index | β |
Insert one row; top-K search (L2) | Yes β data | β |
| Health / version | Yes β status, version | β |
| Batch insert, filtered/hybrid search, partitions, queries, other metrics | No | Milvus SDK |
| Dedicated clusters, backup/restore | No | Preview API (not GA yet) |
| Arbitrary Milvus RPCs through the gateway | No | RunCommand API |
The CLIβs data commands are intentionally a thin slice. For anything richer, connect with the Milvus SDK against the same endpoint db use resolved.
How config resolves
VBase commands read ~/.config/unified-cli/config.yaml:
| Path | Meaning | Set by |
|---|---|---|
global.token | Bearer token for gateway and Milvus calls | dodil login |
global.org_id | Organization ID for db commands | dodil login |
global.org_name | Organization name forwarded on some calls | dodil login |
vbase.gateway_host | Control-plane gateway (default https://api.dev.dodil.io) | config |
vbase.host | Active database endpoint host | db use |
vbase.port | Active database port | db use |
vbase.db_name | Active Milvus database name | db use |
vbase.service_name | Active database service_id | db use |
Resolution order: read global auth/org, then vbase.* connection fields, then fall back to top-level gateway_host/db_name, then to the default gateway. The Milvus-direct commands transport-detect from the endpoint string β https:// or :443 uses TLS, otherwise insecure.
Troubleshooting
db commands work, but collection/data/index fail
The Milvus-direct commands need an active connection context.
- Run
dodil vbase db use <service_id>again. - Confirm
vbase.host,vbase.port, andvbase.db_nameare set in~/.config/unified-cli/config.yaml. - Confirm the database is
RUNNING(dodil vbase db list). ACREATINGdatabase is not yet connectable.
Search returns nothing, or the wrong fields
- Make sure the collection is loaded β
dodil vbase collection load <name>β and has an index on the vector field. --vector-fieldmust match the collectionβs vector field;--id-fieldmust match its primary-key field.- The query vector dimension must equal the collectionβs
dim. data searchqueries withmetric_type=L2. If you built the index withIPorCOSINE, rankings may not match β index onL2for CLI search, or search through the Milvus SDK with the matching metric.
unauthorized / permission errors
- Re-authenticate with
dodil login. - Confirm
global.tokenexists in the config file. - Confirm you are operating in the right organization (
global.org_id).
Gateway connectivity vs auth
Run dodil vbase db test-grpc to dial the gateway over gRPC and list databases. If it succeeds but other db commands fail, the problem is request-specific rather than transport or auth.
collection create rejects a custom schema
Custom --field mode requires exactly one pk field. Vector fields need a dim= param (e.g. vector:float_vector:dim=768). Field types must be one of the supported names listed in Collections, Data & Index.
See also
- Connecting with the Milvus SDK β covers everything the CLI doesnβt.
- Feature Status β GA vs Preview surfaces.