paperclipai/paperclip · error · Error

No package files were found in the selected zip archive.

Error message

No package files were found in the selected zip archive.

What it means

Empty-archive guard in readLocalPackageZip: the file passed the .zip check, but parsing it yielded zero importable package entries (files map empty), so the archive is rejected as not a valid company package export.

Source

Thrown at ui/src/pages/CompanyImport.tsx:704

async function readLocalPackageZip(file: File): Promise<{
  name: string;
  /**
   * The raw .zip File itself. Local imports upload this compressed file as
   * multipart instead of inflating it into one large inline JSON body (which
   * truncated in transit on big companies); the parsed `files` map below is
   * kept only for the client-side preflight display and preview affordances.
   */
  file: File;
  compressedBytes: number;
  rootPath: string | null;
  files: Record<string, CompanyPortabilityFileEntry>;
}> {
  if (!/\.zip$/i.test(file.name)) {
    throw new Error("Select a .zip company package.");
  }
  const archive = await readZipArchive(await file.arrayBuffer());
  if (Object.keys(archive.files).length === 0) {
    throw new Error("No package files were found in the selected zip archive.");
  }
  return {
    name: file.name,
    file,
    compressedBytes: file.size,
    rootPath: archive.rootPath,
    files: archive.files,
  };
}

// ── Chunked transfer flow for large local zips ───────────────────────
//
// A local .zip over the threshold is not uploaded in one request: one dropped
// connection would restart the whole multi-minute upload. Instead the file is
// declared as a chunked transfer (whole-file and per-part sha256), the parts
// are uploaded individually with per-part retries, and preview/apply run
// server-side against the assembled spool. Re-declaring the same file — after
// a failure, a refresh, or between preview and import — resumes the prior

View on GitHub (pinned to a7e689b3c3)

Solutions

  1. Verify the zip actually contains the company package files; re-export the package and retry.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at ui/src/pages/CompanyImport.tsx:704 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@a7e689b3c3 (2026-08-18). Data as JSON: /api/errors/3a61ca836238486e. Report an issue: GitHub.