paperclipai/paperclip · error · ConfigurationIncompleteFailure

codex_credentials_missing

codex_credentials_missing

Error message

configuration incomplete: no Codex credentials available for managed home "${readiness.effectiveHome}". Sign in to Codex on the host with a ChatGPT subscription, or bind a per-agent OPENAI_API_KEY secret for this agent.

What it means

Error "configuration incomplete: no Codex credentials available for managed home "${readiness.effectiveHome}". Sign in to Codex on the host with a ChatGPT subscription, or bind a per-agent OPENAI_API_KEY secret for this agent." thrown in paperclipai/paperclip.

Source

Thrown at server/src/services/heartbeat.ts:1318

function assertLowTrustEnvConfigAllowed(envValue: unknown, source: string) {
  const record = stripForbiddenEnvBindings(envValue);
  if (!record) return;
  for (const [key, rawBinding] of Object.entries(record)) {
    const parsed = envBindingSchema.safeParse(rawBinding);
    if (!parsed.success) continue;
    const binding = parsed.data;
    const isPlainBinding =
      typeof binding === "string" ||
      (typeof binding === "object" &&
        binding !== null &&
        binding.type === "plain");
    if (isPlainBinding && LOW_TRUST_SENSITIVE_ENV_KEY_RE.test(key)) {
      throw new HttpError(
        422,
        `Low-trust execution cannot use inline sensitive env value ${source}.${key}`,
        {
          code: "low_trust_inline_sensitive_env_denied",
        },
      );
    }
  }
}

export async function resolveExecutionRunAdapterConfig(input: {
  companyId: string;
  agentId?: string | null;
  adapterType?: string | null;
  issueId?: string | null;
  heartbeatRunId?: string | null;
  responsibleUserId?: string | null;
  environmentId?: string | null;
  environmentEnv?: unknown;
  environmentDriver?: string | null;
  projectId?: string | null;
  routineId?: string | null;
  executionRunConfig: Record<string, unknown>;

View on GitHub (pinned to 01ad858492)

Solutions

  1. Sign in to Codex on the host with a ChatGPT subscription, or bind a per-agent OPENAI_API_KEY secret for this agent.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/heartbeat.ts:1196 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18). Data as JSON: /api/errors/5ad531098d2668dd. Report an issue: GitHub.