Yeachan-Heo/oh-my-codex · error

Invalid OMX_TEAM_WORKER_LAUNCH_ARGS: bypass cannot be combin

Error message

Invalid OMX_TEAM_WORKER_LAUNCH_ARGS: bypass cannot be combined with direct approval or sandbox policy

What it means

OMX_TEAM_WORKER_LAUNCH_ARGS simultaneously requests execution bypass and a direct approval/sandbox policy; these are mutually exclusive modes.

Source

Thrown at src/team/model-contract.ts:590

  honorExactRoleModel?: boolean;
}): string | undefined {
  const envModel = normalizeOptionalModel(params.envModel);
  const inheritedModel = normalizeOptionalModel(params.inheritedModel);
  const fallbackModel = normalizeOptionalModel(params.fallbackModel);
  if (envModel && envModel !== inheritedModel) return envModel;
  if (params.honorExactRoleModel && fallbackModel) return fallbackModel;
  return envModel ?? inheritedModel ?? fallbackModel;
}

export function resolveTeamWorkerLaunchArgs(options: ResolveTeamWorkerLaunchArgsOptions): string[] {
  const envArgs = restoreExactEnvironmentReasoningOverride(
    splitWorkerLaunchArgs(options.existingRaw),
    options.existingRaw,
  );
  const inheritedArgs = options.inheritedArgs ?? [];
  const envParsed = parseTeamWorkerLaunchArgs(envArgs, 'OMX_TEAM_WORKER_LAUNCH_ARGS');
  if (envParsed.wantsBypass && envParsed.policyKind === 'direct-policy') {
    throw teamWorkerLaunchArgsError(
      'OMX_TEAM_WORKER_LAUNCH_ARGS',
      'bypass cannot be combined with direct approval or sandbox policy',
    );
  }
  const inheritedParsed = parseTeamWorkerLaunchArgs(inheritedArgs, 'inherited leader worker launch arguments');

  const envModel = normalizeOptionalModel(envParsed.modelOverride);
  const inheritedModel = normalizeOptionalModel(inheritedParsed.modelOverride);
  const fallbackModel = normalizeOptionalModel(options.fallbackModel);
  const selectedModel = selectTeamWorkerModel({
    envModel,
    inheritedModel,
    fallbackModel,
    honorExactRoleModel: shouldHonorExactRoleModel(options),
  });
  const selectedModelProvider = envParsed.modelProviderOverride ?? inheritedParsed.modelProviderOverride ?? undefined;
  const endOfOptionsIndex = envArgs.indexOf('--');
  const combinedArgs = endOfOptionsIndex === -1

View on GitHub (pinned to 3ad79a8a6f)

Solutions

  1. Remove either the bypass flag or the direct approval/sandbox flags
  2. If the worker needs bypass, drop the policy flags and rely on defaults
  3. Clear inherited bypass env vars before spawning policy-configured workers

Example fix

# before
export OMX_TEAM_WORKER_LAUNCH_ARGS='--bypass --approval never'
# after
export OMX_TEAM_WORKER_LAUNCH_ARGS='--approval never'
Defensive patterns

Strategy: validation

Validate before calling

const parsed = parseTeamWorkerLaunchArgs(tokens, 'env', { directPolicyMode: 'ignore' });
const ok = !(parsed.wantsBypass && parsed.policyKind === 'direct-policy');

Try / catch

try { resolveWorkerLaunchArgs(...); } catch (e) { if (String(e).includes('bypass cannot be combined')) stripBypassFlagAndRetry(); else throw e; }

Prevention

When it happens

Trigger: envParsed.wantsBypass is true while policyKind === 'direct-policy', e.g. args contain a bypass flag plus --approval or --sandbox values.

Common situations: Copying a leader's policy args while adding a bypass flag for a worker, or stale bypass flag left in the environment.

Related errors


AI-assisted analysis of Yeachan-Heo/oh-my-codex@3ad79a8a6f (2026-08-27). Data as JSON: /api/errors/6694966756ce69d4. Report an issue: GitHub.