paperclipai/paperclip · error · Error

No source configured.

Error message

No source configured.

What it means

Configuration sentinel in CompanyImport: the import/preview flow reached a point where it needs an import source (selected package file or transfer), but none is configured — the user has not chosen a package yet, so the request cannot be built.

Source

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

          ? { mode: "new_company" as const, newCompanyName: newCompanyName || null }
          : { mode: "existing_company" as const, companyId: selectedCompanyId! },
      collisionStrategy,
    };
  }

  // Monotonic id for preview requests. Structural configuration changes bump
  // it, so an in-flight preview they supersede settles silently instead of
  // publishing a result or error for a package that is no longer selected.
  // Imports are not gated this way: they mutate the server, so their outcome
  // is always published.
  const previewGenerationRef = useRef(0);

  // Preview mutation
  const previewMutation = useMutation({
    mutationFn: async (_generation: number) => {
      const meta = buildImportMetaCommon();
      if (sourceMode === "local") {
        if (!localPackage) throw new Error("No source configured.");
        if (usesChunkedTransfer(localPackage.file)) {
          // Too large for one request: upload (or resume) the chunked
          // transfer, then preview against the server-side assembled spool.
          const transferId = await uploadImportTransfer(localPackage.file);
          return companiesApi.importTransferPreview(transferId, meta);
        }
        // Upload the raw compressed zip; the server unzips it into the same
        // inline bundle the importer consumes.
        return companiesApi.importPreviewPackage(localPackage.file, meta);
      }
      const source = buildGithubSource();
      if (!source) throw new Error("No source configured.");
      return companiesApi.importPreview({ source, ...meta });
    },
    onSuccess: (result, generation) => {
      if (generation !== previewGenerationRef.current) return;
      setImportPreview(result);

View on GitHub (pinned to a7e689b3c3)

Solutions

  1. Configure an import source (file or remote) before starting the import.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at ui/src/pages/CompanyImport.tsx:1070 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/a263ffc6b43f6aa2. Report an issue: GitHub.