{"record":{"id":"461d841cbc80a931","repo":"paperclipai/paperclip","slug":"novita-sandbox-environments-require-an-api-key-in","errorCode":null,"errorMessage":"Novita sandbox environments require an API key in config or NOVITA_API_KEY.","messagePattern":"Novita sandbox environments require an API key in config or NOVITA_API_KEY\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/plugins/sandbox-providers/novita/src/plugin.ts","lineNumber":76,"sourceCode":"  if (!config.apiKey && !process.env.NOVITA_API_KEY?.trim()) {\n    errors.push(\"Novita sandbox environments require an API key in config or NOVITA_API_KEY.\");\n  }\n  if (!config.requestedCwd.startsWith(\"/\")) {\n    errors.push(\"requestedCwd must be an absolute path.\");\n  }\n  if (config.timeoutMs < 10_000) {\n    errors.push(\"timeoutMs must be at least 10000.\");\n  }\n  if (config.requestTimeoutMs < 1_000) {\n    errors.push(\"requestTimeoutMs must be at least 1000.\");\n  }\n  return errors;\n}\n\nfunction resolveApiKey(config: NovitaDriverConfig): string {\n  const apiKey = config.apiKey ?? process.env.NOVITA_API_KEY?.trim() ?? \"\";\n  if (!apiKey) {\n    throw new Error(\"Novita sandbox environments require an API key in config or NOVITA_API_KEY.\");\n  }\n  return apiKey;\n}\n\nfunction sandboxOpts(config: NovitaDriverConfig) {\n  return {\n    apiKey: resolveApiKey(config),\n    ...(config.domain ? { domain: config.domain } : {}),\n    ...(config.secure == null ? {} : { secure: config.secure }),\n    timeoutMs: config.timeoutMs,\n    requestTimeoutMs: config.requestTimeoutMs,\n  };\n}\n\nfunction formatErrorMessage(error: unknown): string {\n  return error instanceof Error ? error.message : String(error);\n}\n","sourceCodeStart":58,"sourceCodeEnd":94,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/packages/plugins/sandbox-providers/novita/src/plugin.ts#L58-L94","documentation":"Error \"Novita sandbox environments require an API key in config or NOVITA_API_KEY.\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at packages/plugins/sandbox-providers/novita/src/plugin.ts:76 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set NOVITA_API_KEY or configure apiKey in the environment config."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}