Skip to main content
ekso migrate follows the same exit-code convention as the rest of the CLI (Configuration) plus a few migration-specific patterns. This page covers what each code means in context, common per-source failures, and how to recover.

Exit codes in context

The CLI prints a structured error block on every non-zero exit identifying which row in the cache (and which field, when relevant) caused the failure.

Recovering from a partial apply

Apply is idempotent and resumable. If something fails halfway:
  1. Read the error message — it tells you which row failed and why.
  2. Fix the underlying cause (a bad value in the cache, a missing field-map entry, a permissions issue on the destination).
  3. Re-run apply with --resume. Already-applied rows are skipped via the IdMap; the run picks up at the failed row.
If the failure is structural (the cache is wrong shape because you upgraded the CLI between collect and apply), re-run collect to rebuild the cache, then re-run apply.

Common per-source errors

Jira

Linear

Azure DevOps

Zendesk

Gemini

How to read the apply summary

After apply completes (success or failure), the CLI prints a per-entity summary:
The columns you care about:
  • created — new rows written to Ekso.
  • matched — existing Ekso rows reused (users, mostly).
  • skipped — rows the IdMap said were already applied (typical on --resume).
  • errors — non-fatal failures (e.g. attachment too big, comment with malformed HTML). Apply continues; exit code reflects whether any errors occurred.
If the summary shows non-zero errors, scroll up — every error has a structured log entry above the summary identifying the source-id that failed and the specific Ekso response.

When to re-collect vs re-apply

Getting help

  • The CLI’s --help reflects the binary you have installed — treat it as the source of truth if these docs and your CLI ever drift.
  • Run with --verbose to see request/response details.
  • Open an issue at github.com/EksoHQ/CLI/issues with the cache file (sanitised) and the verbose log.

Where to next