Advanced Tips & Troubleshooting
This page is for integration, maintenance, and troubleshooting work. Business users who only use Lovrabet through an Agent usually do not need to read all of it.
Output formats that exist today
The runtime CLI currently supports only three output formats:
| Format | Best for |
|---|---|
compress | Agents, scripts, CI, and the default path |
json | debugging and saving the raw structure |
pretty | manual reading in a terminal |
Common examples:
lovrabet app list --format json
lovrabet data filter --code <datasetCode> --format pretty
lovrabet schema --format compress
If you want to keep structured output and filter fields, use --jq:
lovrabet app list --format compress --jq '.data.items[] | {name, appcode}'
How --jq works now
The current version already bundles a jq sidecar.
Resolution order is:
JQ_PATH- bundled jq inside the CLI package
- jq from system
PATH
In most cases, you do not need to install jq separately anymore.
What logs can tell you
The CLI records command history:
lovrabet logs show
lovrabet logs clear
When troubleshooting, logs are useful for checking:
- what actually ran
- whether it succeeded or failed
- how long it roughly took
Importing from rabetbase
If you already have .rabetbase.json, the current recommended import path is:
lovrabet app import --file .rabetbase.json
If the old file is still in a legacy structure, upgrade it first:
rabetbase project upgrade
Then import again.
The errors you will see most often
| Error | Common reason | What to do first |
|---|---|---|
Authentication required | no usable AccessKey | run lovrabet auth login |
Set accessKey in .lovrabet.json or pass LOVRABET_ACCESS_KEY. | missing AccessKey in config | check auth status or env vars |
Set appcode via --appcode or in .lovrabet.json. | no app could be resolved | pass --app / --appcode, or validate whether defaultApp matches this request |
App "<name>" not found | selected app is not visible to this account | run lovrabet app list |
Flag --code validation failed | bad dataset code format | copy it again from dataset list |
Invalid JSON for --params | malformed JSON | format the JSON separately first |
risk "write" but riskLevel is "read" | permission guard blocked it | edit riskLevel in the config file |
High-risk operation requires --yes | delete in non-interactive mode | add --yes |
The most effective troubleshooting order
This order usually works better than jumping into code immediately:
lovrabet auth statuslovrabet doctorlovrabet app listlovrabet logs show- add
--format jsonif needed - add
--dry-runfor write-related issues
What the config file should look like now
The runtime CLI now uses a top-level intent-focused config, not the old local multi-app profile model as the main path.
A common shape looks like this:
{
"accessKey": "ak_xxx",
"env": "production",
"defaultApp": "crm",
"format": "compress",
"riskLevel": "write"
}
If you still see large apps blocks in older files, that does not always mean they are unreadable.
It just means they are no longer the recommended model.
When the problem is probably in skills, not the CLI
If the command itself runs but the business result is still wrong, the issue may be outside the CLI:
- the skill may be interpreting the business object incorrectly
- the skill may still point to an outdated SQL or BFF
- the default app candidate or business flow in the skill may be stale
In that case, check:
- whether the business prompt was specific enough
- whether the bound workflow in the skill is still valid
- whether this request should have started with discovery instead of directly executing SQL or BFF