Elizon Docs
Features & Specs

Error codes

Every error and warning code the CLI and the install engine report, and what to do about each.

Every diagnostic carries a stable code, plus a message and a hint specific to the case. The codes are shared by the CLI, the Studio wizard and the install engine, so the same problem has the same code everywhere. Codes starting CLI_ are about the command or the connection; all others are about the Package or the install.

Warnings

Warnings never fail a command (exit code 0).

CodeMeaning
MANIFEST_SLOT_LLM_TIER_COUNTMore than three required llm Slots. Each is a question for the installer, so justify the friction.
MANIFEST_SLOT_LLM_REGIONS_UNVERIFIABLERetired since Story 26.12: no longer emitted, because an llm Slot's constraints.regions is now checked at install against the LLM Configuration's region. Older CLI binaries still print it; upgrade the CLI and ignore it.
SKILL_STATIC_SCAN_FLAGGEDThe local Skill scan flagged a file. The installing Organization re-scans with its own policy, and that result is authoritative.
MANIFEST_APP_PROVIDER_UNDECLAREDA Workflow app node (or an Agent's app Tool) calls a provider that compliance.providers does not list, so the install review would show the operator an incomplete list of third parties. Add the provider to compliance.providers. Reported by validate and build.
CODE_NODE_STATIC_SCAN_FLAGGEDThe local scan flagged a Workflow Code node's source (a socket, a subprocess, a network client, /proc, or a shared Skill rule). The installing Organization re-scans, and that result is authoritative.
HUMAN_REVIEW_APPROVER_STRIPPEDA Human Review step names a literal (or mixed) approver or fallback approver. build strips it; the installer supplies it. An expression-only assignedTo is carried.
SEND_EMAIL_RECIPIENT_STRIPPEDA Send Email step's to, cc or bcc holds anything other than {{ }} expressions. build strips it; set the recipients on the canvas after install.
DATA_TABLE_NODE_KEY_MISSINGA Workflow's Data Table node has no key: an upsert with no condition, or an update or delete with none and applyToAllRows off. The Package builds and installs, but the installed Workflow cannot be published or run until the node has its key. Reported by validate, build and install.
VOICE_CONFIG_KEY_IGNOREDA voice configuration's sttConfig, ttsConfig or callBehavior holds a key a call never reads for that provider (it is dropped), or a credential: apiKey (the stt/tts Slot supplies it) or serviceAccountJson (the operator's Google service account). See Voice and SIP.
VOICE_PROVIDER_UNSUPPORTEDsttProvider or ttsProvider is not a provider this platform runs. None of its sttConfig/ttsConfig reaches a call; the installer has to choose another provider, and these settings are dropped when they do.
KB_INDEX_CONFIG_KEY_IGNOREDA Knowledge Base indexConfig holds a key the platform does not read, at any level (a misspelling, or the API names field_name/use_builtin_metadata instead of name/use_builtin). It is carried and ignored. See Index settings.
PORTABLE_MACHINE_CONTENT_EMAILWhat looks like an email address is in machine content: a Tool's embedded OpenAPI spec (such as info.contact.email) or a Workflow Code node's source (data.code). The Package still builds. A vendor contact or a non-address (logo@2x.png, x@self.weights) may stay; a person's address must go. Reported by validate, build and the Workflow export.
WORKFLOW_NODE_UNBOUNDAn AI Agent node (mode: existing) has agent: null, or a Team step has team: null. The Package builds and installs, but the node has nothing to run. Pick the Agent/Team in Studio and export again, or write agent: agents.<name> / team: teams.<name>. Reported by validate and build.
TOOL_FIXED_HEADER_SECRETMCP Tools only: an MCP Tool's valueType: fixed header value looks like a secret: it starts with Bearer/Basic/Token/Digest, contains a known API-key prefix (sk-, ghp_, AKIA…), or sits under a credential-bearing header name (Authorization, Cookie, X-Api-Key, …). A fixed value is carried verbatim to every installer; use valueType: credential with a credential Slot. The message never repeats the value. Reported by validate and build.
PORTABLE_SKILL_FILE_SKIPPEDvalidate and build left build or OS clutter out of a Skill folder: __pycache__/, .git/, node_modules/ and .venv/ directories at any depth, and *.pyc, .DS_Store and Thumbs.db files. The message lists the skipped paths. Nothing to fix unless you meant to ship one of them; then rename or move it.

The manifest file

CodeMeaning / fix
MANIFEST_NOT_FOUNDNo elizon.yaml in the directory. Run in the Package root, or init one.
MANIFEST_MALFORMED_YAMLelizon.yaml isn't valid YAML, or isn't a mapping. Fix the syntax at the reported position.

Manifest fields

CodeMeaning / fix
MANIFEST_UNSUPPORTED_API_VERSIONapiVersion isn't one this CLI understands. Use elizon.ai/v1.
MANIFEST_INVALID_KINDkind must be Package.
MANIFEST_MISSING_FIELDA required field is absent. path names it.
MANIFEST_INVALID_FIELDA field has the wrong type or value. path names it.
MANIFEST_UNKNOWN_FIELDA field the schema doesn't know: a typo, or a field from a newer CLI. Check schema.
MANIFEST_ENTRY_POINT_MISSINGNo entryPoint.
MANIFEST_ENTRY_POINT_MULTIPLEMore than one entry point. A Package has exactly one.
MANIFEST_ENTRY_POINT_INVALID_REFERENCEentryPoint isn't a <collection>.<name> reference.
MANIFEST_DUPLICATE_NAMETwo objects in one collection share a name.
MANIFEST_SLOT_UNKNOWN_TYPEslots[].type isn't one of the six Slot types.
MANIFEST_SLOT_DUPLICATE_IDTwo Slots share an id.
MANIFEST_SLOT_INLINE_CREDENTIALA Slot has a field that would hold a secret (apiKey, token, value…). Declare the Slot and let the installer bind a Secret.
MANIFEST_UNSUPPORTED_ADAPTERcompatibility.requiredAdapter isn't supported. Use agno.
MANIFEST_COMPLIANCE_REGION_CONTRADICTIONA Slot permits a region that compliance.regions doesn't declare.
MANIFEST_CAPABILITY_DISAGREEMENTA trigger or a policy_set.floor rule needs a capability that requiredCapabilities doesn't include. Triggers: schedule needs schedule, knowledge-document needs knowledge, inbound-call needs voice and sip. Floor rules: policy.redaction for a redact action or a data.redaction block, policy.routing for a routing.data_rules rule, policy.ner for an ner.* detector or a data.name_recognition rule.
MANIFEST_POLICY_ORG_DETECTORA policy_set.floor rule uses a custom.* or dictionary.* detector, which names a pattern or keyword dictionary in one Organization's own detection library. Remove the rule; no Package can carry it.
MANIFEST_TRIGGER_UNKNOWN_TYPEtriggers[].type isn't a trigger type: schedule, webhook, inbound-call, api, manual, email, knowledge-document or app.
MANIFEST_TRIGGER_DUPLICATE_IDTwo triggers share an id.
MANIFEST_TRIGGER_SLOT_UNRESOLVEDAn inbound-call trigger's sipTrunkSlot doesn't name a declared sip-trunk Slot, or an app trigger's connectionSlot doesn't name a declared credential Slot.

References

CodeMeaning / fix
UNRESOLVED_LOCAL_REFERENCEA <collection>.<name> reference names nothing declared. The hint lists what exists.
ENTRY_POINT_NOT_FOUNDentryPoint is well-formed but names an object the Package doesn't declare.
CYCLE_DETECTEDObjects refer to each other in a loop. The error lists the whole loop.

Portable definitions

CodeMeaning / fix
PORTABLE_DEFINITION_INVALIDA definition file doesn't match its schema.
PORTABLE_UNDECLARED_REFERENCEA definition refers to something the manifest doesn't declare.
PORTABLE_ORG_IDENTIFIER_LEAKAn Organization-specific id would be carried in the artifact, or (outside Tool files) a carried string holds a vault: / {{secret.…}} reference. Replace it with a manifest-local reference or a Slot.
PORTABLE_PERSONAL_DATA_LEAKPersonal data (such as an email address) appears in carried text. Remove it; a Package reaches strangers. If it isn't an address (e.g. logo@2x.png), rename it.
PORTABLE_UNSUPPORTED_NODE_TYPEA Workflow node type that can't be packaged, e.g. a retired type. Replace the node in Studio.
WORKFLOW_UNKNOWN_OUTPUT_FIELDA node reads {{ upstream.<id>.output.<field> }} and that node's output has no <field>. Except in the nested-Loop case below, checked for code, ai_agent, human_review and data_table nodes, on the first segment after output only. A Code node's returned keys are under output.result; the hint names the right path. A Loop-body node read after the loop has only iterations and loopNodeId. A node inside a nested Loop's body read from the enclosing Loop's body (outside its own) has no output yet, so every {{ upstream.<id>.output… }} reference to it is refused there, whatever its node type, the bare {{ upstream.<id>.output }} included. Reported by validate and build.
PORTABLE_CONFIG_SCHEMA_VERSION_UNSUPPORTEDThe definition's configSchemaVersion is newer than this platform understands.
PORTABLE_UNRESOLVED_BINDINGAt install, a reference or Slot has no matching resource in the target Organization.
PORTABLE_CONSTRAINT_VIOLATIONAt install, the definition breaks a database rule (the message names it), e.g. an invalid Team lead.
PORTABLE_IDENTIFIER_COLLISIONAt install, the target project already has a Tool with this identifier. Reuse it or rename.
PORTABLE_SKILL_TOO_LARGEA Skill's files total more than 10 MB.
PORTABLE_SKILL_BINARY_FILEA Skill file isn't UTF-8 text: it holds a NUL byte or isn't valid UTF-8 (an image, a compiled file). The message names the file. Skill files are stored as text, so remove the file or replace it with a text form. Build and OS clutter is skipped instead (see PORTABLE_SKILL_FILE_SKIPPED).

The .pkg archive

CodeMeaning / fix
PKG_INVALID_LAYOUTNot a zip, truncated, or missing a required entry. Rebuild with build.
PKG_UNSAFE_ENTRY_PATHAn entry path is absolute, contains .., or is a symlink.
PKG_LIMIT_EXCEEDEDOver a size or count limit. See limits.
PKG_ENTRY_TOO_LARGEOne file is over 5 MB.
PKG_DIGEST_MISMATCHA file doesn't match the digest manifest. It changed after build; rebuild.
PKG_UNSUPPORTED_FORMAT_VERSIONThe artifact's format is newer than this platform understands.

Signatures

CodeMeaning / fix
PKG_UNSIGNEDBuilt but not signed. Run sign.
PKG_SIGNATURE_INVALIDContents don't match the signature. Treat as tampered; don't install.
PKG_UNKNOWN_SIGNER_KEYSigned by a key you haven't trusted. Not tampering; add the signer's public key if you trust them.
PKG_ALREADY_SIGNEDAlready signed. Sign an unsigned build, or use --re-sign deliberately.

Compatibility

CodeMeaning / fix
PKG_INCOMPATIBLE_PLATFORM_VERSIONThe platform is older than compatibility.minPlatformVersion.
PKG_PLATFORM_VERSION_UNKNOWNThe platform didn't report a usable version, so compatibility couldn't be checked.
PKG_MISSING_CAPABILITYThe deployment lacks a required capability (e.g. voice without a voice backend).

Slot binding

CodeMeaning / fix
SLOT_CREDENTIAL_VALUE_REJECTEDA secret value was given where a {{secret.KEY}} reference is required.
SLOT_CREDENTIAL_UNRESOLVEDThe referenced Secret doesn't exist in this Organization. The hint links to Settings → Secrets.
SLOT_OAUTH_REQUIRES_BROWSERAn OAuth credential can't be connected in a terminal. Use the Studio wizard. Retrying won't help.
SLOT_LLM_UNRESOLVEDThe LLM Configuration doesn't exist here, its region is outside regions, or no model meets the constraints.
SLOT_LLM_CONSTRAINT_UNVERIFIABLEThe Slot sets regions and the LLM Configuration's region is unknown. Set its region, or pick another.
SLOT_LLM_NOT_DEFERRABLEAn llm Slot was deferred. Models can't be deferred.
SLOT_BINDING_UNRESOLVEDA knowledge, speech or trunk Slot names something this Organization doesn't have, or the Slot doesn't allow.
SLOT_UNDECLAREDA binding for a Slot id the Package doesn't declare (check the spelling).

Install, recovery and evaluation

CodeMeaning / fix
PORTABLE_INSTALL_FAILEDCreation stopped on something that isn't a Package defect (a timeout, a service error). Resume or roll back.
INSTALL_ROLLBACK_BLOCKEDRollback kept an object because something outside the Package now uses it.
INSTALL_STATE_INVALIDThe action doesn't apply in the installation's current status (e.g. resuming a finished install).
EVALUATION_SUITE_MISSINGevaluation.suite names a file the archive doesn't contain.
EVALUATION_SUITE_INVALIDThe suite isn't valid: no cases, a duplicate id, an expectation that can't be evaluated.
EVALUATION_NOT_ACKNOWLEDGEDActivation was attempted before the operator acknowledged the evaluation results.

The CLI itself

CodeMeaning / fix
CLI_UNKNOWN_COMMANDNot a command. Check the spelling; run npx @elizon/cli for the list.
CLI_COMMAND_NOT_IMPLEMENTEDThe command exists but isn't available in this version. Retrying won't help.
CLI_COMMAND_RESERVEDlogin / publish: reserved for a future release.
CLI_WRITE_NOT_CONFIRMEDA command that acts on an Organization ran without --yes.
CLI_INVALID_USAGEA missing, unknown or malformed flag or argument.
CLI_INTERNAL_ERRORThe CLI itself failed (exit code 2). Report it.
CLI_TOOLCHAIN_UNPINNED.elizon/config.yaml has no cliVersion.
CLI_TOOLCHAIN_MISMATCHThe running CLI isn't the project's pinned version.

Connecting to an Organization

CodeMeaning / fix
CLI_TARGET_UNREACHABLEThe address can't be reached (DNS, connection or TLS failure), or what answered isn't an Elizon deployment with Package support.
CLI_TARGET_ERRORThe gateway answered with an HTTP error status (the message names it), such as a 500. The network is fine: check the platform's gateway logs, or retry once it has recovered.
CLI_TARGET_APPROVAL_EXPIREDNobody approved the device within 10 minutes. Run target add again.
CLI_TARGET_APPROVAL_DENIEDSomeone chose Deny on the approval page.
CLI_TARGET_TOKEN_REJECTEDThe device token expired or was revoked. Run target add again.
CLI_TARGET_NOT_FOUND--target names a target this machine hasn't connected to. Check target ls.
CLI_TARGET_STORE_UNSAFEThe credential file would be written inside the project. Point XDG_CONFIG_HOME / ELIZON_CONFIG_HOME elsewhere.
CLI_TARGET_FORBIDDENYour role doesn't allow this. Reconnecting won't help; ask for a role change.
CLI_PROJECT_NOT_FOUND--project isn't a live project of the target's Organization: wrong id, archived or deleted, or it belongs to another Organization (connect a target for that one).