paperclipai/paperclip · error

E2B sandbox environments require an API key in config or…

Error message

E2B sandbox environments require an API key in config or E2B_API_KEY.

What it means

Error "E2B sandbox environments require an API key in config or E2B_API_KEY." thrown in paperclipai/paperclip.

Solutions

  1. Set E2B_API_KEY or configure apiKey in the environment config.

When it happens

Trigger: Thrown at packages/plugins/sandbox-providers/e2b/src/plugin.ts:52 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18). Data as JSON: /api/errors/222526aa49e42d58. Report an issue: GitHub.

Appendix: source

Thrown at packages/plugins/sandbox-providers/e2b/src/plugin.ts:52

  const template = typeof raw.template === "string" && raw.template.trim().length > 0
    ? raw.template.trim()
    : "base";
  const timeoutMs = Number(raw.timeoutMs ?? 3_600_000);
  return {
    template,
    apiKey: typeof raw.apiKey === "string" && raw.apiKey.trim().length > 0 ? raw.apiKey.trim() : null,
    timeoutMs: Number.isFinite(timeoutMs) ? Math.trunc(timeoutMs) : 3_600_000,
    reuseLease: raw.reuseLease === true,
  };
}

function resolveApiKey(config: E2bDriverConfig): string {
  if (config.apiKey) {
    return config.apiKey;
  }
  const envApiKey = process.env.E2B_API_KEY?.trim() ?? "";
  if (!envApiKey) {
    throw new Error("E2B sandbox environments require an API key in config or E2B_API_KEY.");
  }
  return envApiKey;
}

async function createSandbox(config: E2bDriverConfig): Promise<Sandbox> {
  const options = {
    apiKey: resolveApiKey(config),
    timeoutMs: config.timeoutMs,
    metadata: {
      paperclipProvider: "e2b",
    },
  };
  return await Sandbox.create(config.template, options);
}

function formatErrorMessage(error: unknown): string {
  return error instanceof Error ? error.message : String(error);
}

View on GitHub (pinned to 120ae5428f)