paperclipai/paperclip · error
Daytona interactive setup can start from image or snapshot…
Error message
Daytona interactive setup can start from image or snapshot templates only, not ${sourceKind}. What it means
Argument validation in withSetupSourceTemplate: interactive setup was requested with a sourceTemplateRef whose sourceTemplateKind (defaulting to 'snapshot') is neither 'image' nor 'snapshot'. Daytona can only clone a setup sandbox from an image or a snapshot template, so any other template kind is rejected before the config is rewritten.
Solutions
- Start interactive setup from an image or snapshot template.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/plugins/sandbox-providers/daytona/src/plugin.ts:687 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/2aacc64731f3bc67.
Report an issue: GitHub.
Appendix: source
Thrown at packages/plugins/sandbox-providers/daytona/src/plugin.ts:734
: null;
}
function sanitizeSnapshotName(value: string | null | undefined, fallback: string): string {
const cleaned = (value ?? fallback)
.trim()
.toLowerCase()
.replace(/[^a-z0-9._-]+/g, "-")
.replace(/^-+|-+$/g, "")
.slice(0, 96);
return cleaned || fallback;
}
function withSetupSourceTemplate(
config: DaytonaDriverConfig,
params: Pick<PluginEnvironmentStartInteractiveSetupParams, "sourceTemplateRef" | "sourceTemplateKind">,
): DaytonaDriverConfig {
if (!params.sourceTemplateRef) return config;
const sourceKind = params.sourceTemplateKind ?? "snapshot";
if (sourceKind === "image") {
return {
...config,
image: params.sourceTemplateRef,
snapshot: null,
};
}
if (sourceKind !== "snapshot") {
throw new Error(`Daytona interactive setup can start from image or snapshot templates only, not ${sourceKind}.`);
}
return {
...config,
snapshot: params.sourceTemplateRef,
image: null,
};
}
async function createSshConnection(View on GitHub (pinned to 3f1d897a7c)