Skip to content

Errors and Failure Modes

General format

User-facing CLI errors are written to stderr in the format:

text
error: <message>

The command exits with a non-zero exit code.

Common blocking situations

SituationWhat it meansWhat to do
Untracked file conflicts with remote during synca file in skills/ or mcp/ matches by name a file from remoterename the file, publish it via aiman push, or use --force (the conflicting file will be deleted)
Remote is ahead during pushthe published state has moved forwardrun aiman sync
Git history has divergedAIM cannot safely choose a staterestore Git manually
AI environment not foundadapter could not find the base dirset the path in aim.local.yaml
MCP env not seta required variable is missingenter during sync or add to aim.local.yaml
Invalid Skillmissing name, filename mismatch, or empty bodyfix skills/<name>.md
Invalid MCP Itemmissing required field or invalid YAMLfix mcp/<name>.yaml
No access to remoteGit cannot read or write the repositorycheck network, credentials, and permissions

--dry-run

For potentially destructive operations, run dry-run first:

bash
aiman push --dry-run
aiman sync --dry-run
aiman apply --dry-run

Dry-run shows the plan without writing to Git, the inventory repository, or AI environments.

--force

aiman sync --force removes untracked files in skills/ and mcp/ that conflict by name with remote files, then applies the published state. Files without conflicts are always preserved.

Use this flag only if the conflicting files can be safely deleted. The deletion is permanent.

Released under the Apache 2.0 License.