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 === -1View on GitHub (pinned to 3ad79a8a6f)
Solutions
- Remove either the bypass flag or the direct approval/sandbox flags
- If the worker needs bypass, drop the policy flags and rely on defaults
- 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
- Choose either bypass or explicit policy per worker, never both
- Sanitize inherited env before spawning workers
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
- Invalid OMX_TEAM_WORKER_LAUNCH_ARGS: unterminated quote
- Invalid ${source}: missing value for ${flag}
- Invalid ${source}: conflicting duplicate ${axis} policy
- Invalid ${source}: missing value for ${configFlag}
- Unknown adapt argument: ${arg}
AI-assisted analysis of Yeachan-Heo/oh-my-codex@3ad79a8a6f (2026-08-27).
Data as JSON: /api/errors/6694966756ce69d4.
Report an issue: GitHub.