{"record":{"id":"58d04efd977614a2","repo":"paperclipai/paperclip","slug":"daytona-resource-settings-require-image-backed-san","errorCode":null,"errorMessage":"Daytona resource settings require image-backed sandbox creation; default sandbox creation cannot override CPU, memory, disk, or GPU.","messagePattern":"Daytona resource settings require image-backed sandbox creation; default sandbox creation cannot override CPU, memory, disk, or GPU\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/plugins/sandbox-providers/daytona/src/plugin.ts","lineNumber":924,"sourceCode":"    'if [ -f \"$HOME/.zprofile\" ]; then . \"$HOME/.zprofile\" >/dev/null 2>&1 || true; fi',\n  ];\n  if (input.cwd) {\n    lines.push(`cd ${shellQuote(input.cwd)}`);\n  }\n  lines.push(finalLine);\n  return lines.join(\" && \");\n}\n\n// The workspace remote dir is the confinement root for native file sync. It is\n// recorded on the lease metadata at acquire/resume time; require it so a sync can\n// never run without a concrete root to confine every sandbox path against.\nfunction resolveSyncRemoteDir(lease: { metadata?: Record<string, unknown> | null }): string {\n  const remoteCwd = lease.metadata?.remoteCwd;\n  if (typeof remoteCwd === \"string\" && remoteCwd.trim().length > 0) {\n    return remoteCwd.trim();\n  }\n  throw new Error(\"Daytona file sync requires a workspace remote dir on the lease metadata.\");\n}\n\nasync function createSandbox(\n  params: PluginEnvironmentAcquireLeaseParams | PluginEnvironmentProbeParams | PluginEnvironmentStartInteractiveSetupParams,\n  config: DaytonaDriverConfig,\n  options: { purpose?: string } = {},\n): Promise<Sandbox> {\n  const resourceRequestError = validateRuntimeResourceRequest(config);\n  if (resourceRequestError) {\n    throw new Error(resourceRequestError);\n  }\n  const client = createDaytonaClient(config);\n  const createParams = buildCreateParams(config, buildSandboxLabels({\n    companyId: params.companyId,\n    environmentId: params.environmentId,\n    runId: \"runId\" in params ? params.runId : undefined,\n    setupSessionId: \"sessionId\" in params ? params.sessionId : undefined,\n    purpose: options.purpose,\n    reuseLease: config.reuseLease,","sourceCodeStart":906,"sourceCodeEnd":942,"githubUrl":"https://github.com/paperclipai/paperclip/blob/3f1d897a7c018d76563a21c6e39c3c9b03933622/packages/plugins/sandbox-providers/daytona/src/plugin.ts#L906-L942","documentation":"Capability conflict check in the Daytona create path: the config requests CPU/memory/disk/GPU overrides, but those resource settings are only honored when the sandbox is created image-backed. With default (snapshot/default) creation the driver would silently ignore the resources, so it rejects the config instead of creating an undersized sandbox.","triggerScenarios":"Thrown at packages/plugins/sandbox-providers/daytona/src/plugin.ts:877 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Create the sandbox from an image to override CPU/memory/disk/GPU, or drop the resource overrides."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3f1d897a7c018d76563a21c6e39c3c9b03933622","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}