akua / errors
Error codes
Every akua verb emits structured errors with a stable code field. Branch on these from agent code; humans get the full description by following the docs URL in the error JSON.
Lockfile / manifest
- E_MANIFEST_MISSING
- E_MANIFEST_PARSE
- E_LOCK_MISSING
- E_LOCK_PARSE
-
E_LOCK_DRIFT
akua.lock is out of sync with akua.toml — akua lock --check found drift. Re-run akua lock without --check to refresh.
-
E_DEP_KIND_MISMATCH
A dep alias referenced by import <alias> (or pkg.render({package = "<alias>"})) in package.k resolves to a kind that's unreachable from KCL. Most common case: an Akua/KCL-module dep was misclassified as a Helm chart by...
-
E_MANIFEST_GIT_USERINFO
akua.toml declares a git = "..." dep whose URL contains embedded credentials (https://user:pass@host/...). Rejected at parse time so the credential never reaches the lockfile or git history. Pass credentials via the...
-
E_MANIFEST_HELM_MISSING_CHART
akua.toml declares a repo (HTTPS Helm repository) dep that is missing the required chart field.
-
E_MANIFEST_HELM_MISSING_VERSION
akua.toml declares a repo dep that is missing the required version field (a semver constraint is mandatory for reproducibility).
-
E_MANIFEST_HELM_USERINFO
akua.toml declares a repo dep whose URL contains embedded credentials (https://user:pass@host/...). Rejected at parse time so the credential never reaches the lockfile or git history. Pass credentials via the SDK auth...
-
E_MANIFEST_HELM_CHART_INVALID
akua.toml declares a repo dep whose chart value contains path separators (/, \) or .. — a chart name must be a plain single-component name. Rejected at parse time to prevent path confusion in the chart cache.
-
E_MANIFEST_OCI_USERINFO
akua.toml declares an oci dep whose URL contains embedded credentials (oci://user:pass@host/...). Rejected at parse time so the credential never reaches the lockfile or git history. Pass credentials via the SDK auth...
-
E_AUTH_PARSE
CLI --auth <prefix>=<user>:<password> value (or --auth-file TOML payload) didn't parse. Distinct from E_INVALID_FLAG so agents can branch on credential-input shape errors specifically.
Render
- E_PACKAGE_MISSING
- E_PACKAGE_PARSE
- E_INPUTS_MISSING
- E_INPUTS_PARSE
-
E_INVALID_FLAG
CLI-level flag value didn't parse — --timeout=5min, --max-depth=foo, etc. Distinct from E_INPUTS_PARSE (which covers inputs.yaml content) so agents can branch on the right thing.
- E_RENDER_KCL
- E_RENDER_YAML
-
E_RENDER_OUTPUT_TOO_LARGE
A render produced more output than the host is willing to buffer from the sandboxed worker (the per-render stdout ceiling — a DoS bound on shared hosts). The Package renders, but its manifest set is too large to...
-
E_ENGINE_NOT_AVAILABLE
Package called an engine plugin whose WASM backend hasn't shipped yet (docs/roadmap.md tracks the blocked features). Shell-out is not an option — see CLAUDE.md "No shell-out, ever."
-
E_PATH_ESCAPE
Package argument to an engine plugin resolved to a path outside the Package directory (traversal / symlink escape).
-
E_RENDER_CYCLE
pkg.render re-entered a Package already on the render stack — composition cycle. Caught before the inner load to bound recursion; covers both direct and transitive cycles.
-
E_RENDER_BUDGET_DEPTH
pkg.render exceeded the render-stack depth cap. Default is generous (16); hitting it usually means runaway composition through fresh Packages, which cycle detection alone can't catch.
-
E_RENDER_BUDGET_DEADLINE
pkg.render was called after the wall-clock deadline the outer caller installed for the render had already expired.
-
E_DEP_RESOLVE
A dep in akua.toml failed to resolve (missing path, not-a-directory, OCI/git fetch failure, lockfile mismatch). Covers all dep kinds — path / oci / git / vendor — not chart-specific. See chart_resolver and vendor.
-
E_STRICT_UNTYPED_CHART
akua render --strict: a plugin was handed a raw-string chart path instead of a typed charts.* import. Surfaces the Package authoring site that needs to migrate.
-
E_COSIGN_VERIFY
Cosign signature failed cryptographic verification, or the payload disagrees with the fetched digest. Attacker-side signal — someone served bytes the configured key didn't approve.
-
E_COSIGN_SIG_MISSING
A cosign public key was configured but the registry has no .sig sidecar (or it's malformed). Publisher-side signal — actionable by the artifact's author, not the consumer.
Init
Fmt
Lint
Check
Inspect
Diff
Add
Vendor
Remove
Publish / Pull
-
E_PUBLISH_FAILED
akua publish failed to upload the artifact. Wraps every registry- side failure (auth rejected, upload PUT non-2xx, manifest malformed).
-
E_PULL_FAILED
akua pull couldn't retrieve / extract the requested artifact.
Hosted API
-
E_AUTH_REQUIRED
Hosted Akua API auth token is required but was not provided.
-
E_AUTH_INVALID
Hosted Akua API token was rejected as invalid or expired.
-
E_FORBIDDEN
Hosted Akua API token is valid but lacks permission for the request.
-
E_UNSUPPORTED
Requested CLI option or hosted API bridge feature is not implemented.
-
E_API_REQUEST
Hosted Akua API request failed before a structured response was available.