Significant-Gravitas/AutoGPT · error · Error

No files could be downloaded.

Error message

No files could be downloaded.

What it means

HTTP 404 from POST /blocks/{block_id}/execute when the user_id resolved from the auth token has no matching user row (get_user_by_id returns None). The request authenticated, but the referenced account no longer exists — typically a deleted user whose token is still being used.

Source

Thrown at autogpt_platform/frontend/src/app/(platform)/copilot/components/ContextPanel/components/FilesTab/helpers.ts:90

  entries: ZipEntry[],
  deps: DownloadZipDeps = {},
): Promise<void> {
  const fetchImpl = deps.fetchImpl ?? ((url: string) => fetch(url));
  const save = deps.save ?? triggerDownload;
  const zip = new JSZip();
  const used = new Set<string>();
  let added = 0;
  for (const entry of entries) {
    const res = await fetchImpl(fileDownloadUrl(entry.id));
    if (!res.ok) continue;
    let name = entry.name || entry.id;
    while (used.has(name)) name = `${entry.id.slice(0, 8)}-${name}`;
    used.add(name);
    zip.file(name, await res.blob());
    added++;
  }
  if (added === 0) {
    throw new Error("No files could be downloaded.");
  }
  const blob = await zip.generateAsync({ type: "blob" });
  save(blob, "workspace-files.zip");
}

View on GitHub (pinned to 9c8bb5550f)

Solutions

  1. Re-authenticate: log out and back in so a fresh token for an existing user is used.
  2. If provisioning, ensure the platform user row is created before issuing tokens for direct block execution.
  3. Handle 404 on this route by clearing the session and redirecting to login.

Example fix

// before
await api.post(`/blocks/${blockId}/execute`, data);

// after
const resp = await api.post(`/blocks/${blockId}/execute`, data);
if (resp.status === 404) {
  await auth.signOut();
  window.location.href = '/login';
}
Defensive patterns

Strategy: try-catch

Try / catch

const resp = await api.post(`/blocks/${blockId}/execute`, data);
if (resp.status === 404) {
  await auth.signOut();       // token references a deleted/nonexistent user
  window.location.href = '/login';
}

Prevention

When it happens

Trigger: Calling block execution with a valid-signature JWT for an account deleted (or created in another environment) after issuance. Also occurs when auth and app databases are out of sync, e.g. the identity provider knows the user but the platform DB does not.

Common situations: Deleted/deactivated account with a live session in a browser or automation; staged user provisioning where auth succeeds before the platform user row is created; tokens copied across environments.

Related errors


AI-assisted analysis of Significant-Gravitas/AutoGPT@9c8bb5550f (2026-08-14). Data as JSON: /api/errors/1954e57dc34d05d6. Report an issue: GitHub.