larksuite/cli · error · LarkCliError

No visible worksheet matched

Error message

No visible worksheet matched

What it means

During suite-layout sync, syncSuite creates a temporary staging directory via vfs.MkdirTemp before staging the suite archive. If that temp-directory creation fails, the OS error is wrapped with this message. This is an environment/infrastructure failure, not a config problem.

Source

Thrown at skills/lark-sheets/scripts/lark_chart_layout_check.py:455

    if report["data"]["passed"]:
        return 0
    if report["data"]["summary"]["issue_count"] > 0:
        return 2
    return 1


def main() -> None:
    args = parse_args()
    locator = _locator(args.sheet_id)
    try:
        workbook_data = envelope_data(
            run_sheets("+workbook-info", **locator, timeout=args.timeout)
        )
        sheets = resolve_target_sheets(workbook_data, sheet_id=args.worksheet_id)
        if not args.worksheet_id:
            sheets = [sheet for sheet in sheets if not bool(sheet.get("is_hidden"))]
        if not sheets:
            raise LarkCliError("No visible worksheet matched")
        results = [
            check_sheet(locator, sheet, timeout=args.timeout, sample_limit=args.sample_limit)
            for sheet in sheets
        ]
    except (LarkCliError, KeyError, TypeError, ValueError) as exc:
        emit_error(ACTION, str(exc))
        raise SystemExit(1) from exc

    report = success_envelope(results)
    print(json.dumps(report, ensure_ascii=False, indent=2))
    exit_code = report_exit_code(report)
    if exit_code:
        raise SystemExit(exit_code)


if __name__ == "__main__":
    main()

View on GitHub (pinned to 7fd6ef3c07)

Solutions

  1. Check free disk space and clear space if the temp volume is full (df -h /tmp or your TMPDIR).
  2. Ensure TMPDIR points to an existing writable directory, or unset a bad TMPDIR override.
  3. Re-run the sync in an environment where the process can create temp directories (adjust sandbox/container permissions).
  4. Retry the sync after fixing the environment; no config change is needed.

Example fix

// before (broken env)
export TMPDIR=/nonexistent
// after
export TMPDIR=$(mktemp -d -t lark-tmp-XXXX)/.. && mkdir -p "$TMPDIR"  # or simply: unset TMPDIR
Defensive patterns

Strategy: retry

Validate before calling

// Pre-flight: temp dir writable?
if f, err := os.CreateTemp(os.TempDir(), "lark-preflight-*"); err != nil {
    return fmt.Errorf("temp dir not writable: %w", err)
} else { f.Close(); os.Remove(f.Name()) }

Try / catch

if err := syncLayout(...); err != nil && strings.Contains(err.Error(), "create suite staging directory") {
    // check TMPDIR and free space, then retry once after fixing the environment
}

Prevention

When it happens

Trigger: Running a skills sync in suite mode where vfs.MkdirTemp("", "lark-cli-suite-") fails — no writable TMPDIR, full disk, read-only /tmp, sandbox lacking temp-dir permissions, or TMPDIR pointing at a nonexistent directory.

Common situations: CI containers with /tmp mounted read-only or size-limited; users running the CLI with TMPDIR set to a missing path; disk-quota exhaustion on hosts or remote/portable execution environments where FileIO/vfs is scoped.

Related errors


AI-assisted analysis of larksuite/cli@7fd6ef3c07 (2026-09-04). Data as JSON: /api/errors/7aa602bc67c38f96. Report an issue: GitHub.