paperclipai/paperclip · error
Daytona syncOut download failed for
Error message
Daytona syncOut download failed for ${entry.source}: ${response?.error ?? "no response returned"} What it means
Per-file failure surfacing in the syncOut download path: sandbox.fs.downloadFiles returns per-request errors in response.error rather than throwing, and this entry's download response carried an error (or no response at all was keyed for its source). The error names the original entry.source so the caller can tell which workspace file failed to come back from the sandbox.
Solutions
- Check the Daytona API error in the message; verify the source path exists in the sandbox and retry.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/plugins/sandbox-providers/daytona/src/file-sync.ts:893 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-08-18).
Data as JSON: /api/errors/1e11e6cf99dc2415.
Report an issue: GitHub.
Appendix: source
Thrown at packages/plugins/sandbox-providers/daytona/src/file-sync.ts:933
run: () =>
assertSandboxCommandOk(
sandbox,
`sh -c ${shellQuote(extractScript)}`,
timeoutSeconds,
"syncIn extract",
),
});
} catch (error) {
await removeSandboxScratch(sandbox, [remoteTar], timeoutSeconds);
throw error;
}
const filesTransferred = await countHostFiles(mapping.sourcePath, mapping.exclude);
return { filesTransferred, bytesTransferred };
});
}
/**
* Execute an operation's ordered `postUploadCommands` in-sandbox AFTER its files
* have landed. Commands run in array order, fail-fast: the first non-zero exit
* or timeout throws and stops the rest. Each `command` string is executed
* VERBATIM via the exec seam; the provider never rewrites, concatenates, or
* appends a shell fragment to it — the working directory rides
* `executeCommand`'s structured `cwd` argument, never a `cd &&` prefix on the
* command. An absent `cwd` defaults to the provider-resolved remote dir — never
* a process default cwd.
*
* Shared by the file- and directory-mapping paths: it runs once per operation,
* after every mapping of that operation has been placed.
*/
async function runPostUploadCommands(input: {
sandbox: Sandbox;
commands: PluginPostUploadCommand[];
remoteDir: string;
timeoutSeconds: number;
}): Promise<void> {
const { sandbox, commands, remoteDir, timeoutSeconds } = input;View on GitHub (pinned to 3f1d897a7c)