openclaw/openclaw · error · CodexSupervisionPolicyError

Codex supervision compatibility tools require an owner-autho

Error message

Codex supervision compatibility tools require an owner-authorized sender.

What it means

Thrown as a CodexSupervisionPolicyError by requireOwnerAccess when senderIsOwner is false. Only the trusted owner may use supervision tools because they expose raw transcripts and write controls. requireOwnerAccess runs before any tool work in requireLiveToolPolicy.

Source

Thrown at extensions/codex/src/supervision-tools.ts:909

      return sanitized;
    }),
    errors: includeTranscriptDerivedFields
      ? redactCodexSupervisionValue(result.errors)
      : result.errors.map(({ endpointId, ok }) => ({ endpointId, ok })),
  };
}

function requireSupervisionEnabled(pluginConfig: unknown): void {
  if (readCodexPluginConfig(pluginConfig).supervision?.enabled !== true) {
    throw new CodexSupervisionPolicyError(
      "Codex supervision is disabled in the codex plugin config.",
    );
  }
}

function requireOwnerAccess(options: CodexSupervisionToolsOptions): void {
  if (!options.senderIsOwner) {
    throw new CodexSupervisionPolicyError(
      "Codex supervision compatibility tools require an owner-authorized sender.",
    );
  }
}

function resolveToolPolicy(
  options: CodexSupervisionToolsOptions,
  pluginConfig: unknown,
): {
  allowRawTranscripts: boolean;
  allowWriteControls: boolean;
} {
  const config = readCodexPluginConfig(pluginConfig).supervision;
  const env = options.env ?? process.env;
  return {
    allowRawTranscripts:
      config?.allowRawTranscripts === true ||
      (options.useLegacyMcpPolicyEnv === true &&

View on GitHub (pinned to 01804a7531)

Solutions

  1. Ensure the tool context sets senderIsOwner:true only for the owner identity.
  2. Run the tools from an owner-authorized session.
  3. Do not install/expose supervision tools on non-owner channels.

Example fix

// before
createCodexSupervisionTools({ ..., senderIsOwner: false })
// after
createCodexSupervisionTools({ ..., senderIsOwner: true })
Defensive patterns

Strategy: validation

Validate before calling

if (!options.senderIsOwner) {
  return []; // do not install supervision tools for non-owner contexts
}

Prevention

When it happens

Trigger: A non-owner sender (or a plugin tool context that did not receive senderIsOwner:true) triggers any supervision tool.

Common situations: Plugin tool context not propagating the owner bit; invoking the tools from a non-owner session or channel; factory wiring mistake.

Related errors


AI-assisted analysis of openclaw/openclaw@01804a7531 (2026-08-12). Data as JSON: /api/errors/aed4103a4f260deb. Report an issue: GitHub.