{"record":{"id":"7db638b192b87de8","repo":"Yeachan-Heo/oh-my-codex","slug":"unknown-argument-for-omx-team-api-token","errorCode":null,"errorMessage":"Unknown argument for \"omx team api\": ${token}","messagePattern":"Unknown argument for \"omx team api\": (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/cli/team.ts","lineNumber":564,"sourceCode":"        throw new Error(`Invalid --input JSON: ${error instanceof Error ? error.message : String(error)}`);\n      }\n      i += 1;\n      continue;\n    }\n    if (token.startsWith('--input=')) {\n      const raw = token.slice('--input='.length);\n      try {\n        const parsed = JSON.parse(raw) as unknown;\n        if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n          throw new Error('input must be a JSON object');\n        }\n        input = parsed as Record<string, unknown>;\n      } catch (error) {\n        throw new Error(`Invalid --input JSON: ${error instanceof Error ? error.message : String(error)}`);\n      }\n      continue;\n    }\n    throw new Error(`Unknown argument for \"omx team api\": ${token}`);\n  }\n  return { operation, input, json };\n}\n\nfunction slugifyTask(task: string): string {\n  return task\n    .toLowerCase()\n    .replace(/[^a-z0-9]+/g, '-')\n    .replace(/-+/g, '-')\n    .replace(/^-|-$/g, '')\n    .slice(0, 30) || 'team-task';\n}\n\nfunction snapshotHasDeadWorkerStall(snapshot: TeamSnapshot): boolean {\n  return snapshot.deadWorkers.length > 0 && (snapshot.tasks.pending + snapshot.tasks.in_progress) > 0;\n}\n\nfunction buildDeadWorkerAwaitEvent(teamName: string, snapshot: TeamSnapshot): TeamEvent | null {","sourceCodeStart":546,"sourceCodeEnd":582,"githubUrl":"https://github.com/Yeachan-Heo/oh-my-codex/blob/3ad79a8a6fe6e95fdbb8c00e40716fffe4011ce2/src/cli/team.ts#L546-L582","documentation":"Thrown when a token in `omx team api` argument parsing matches none of --json, --input, --input=, or their value slot. The unknown token name is included so you can see which argument was rejected.","triggerScenarios":"Typos like `--jsn` or `--Input`, or passing flags from another subcommand such as `omx team api <op> --tail-lines 50`.","commonSituations":"Copy-pasting flag sets between subcommands, autocomplete inserting wrong flags, or version differences where a flag was removed/renamed.","solutions":["Remove or correct the token named in the message; only --json, --input <json>, and --input=<json> are accepted.","Re-check the subcommand's usage string: `omx team api <operation> [--input <json>] [--json]`.","If you expected the flag to exist, verify your installed CLI version's supported flags."],"exampleFix":"# before\nomx team api list --jsn\n# after\nomx team api list --json","handlingStrategy":"validation","validationCode":"const ALLOWED = new Set(['--json', '--input']);\nfor (const t of args.slice(1)) {\n  if (!ALLOWED.has(t) && !t.startsWith('--input=')) {\n    console.error(`Unknown argument: ${t}`); process.exit(2);\n  }\n}","typeGuard":"const isKnownTeamApiFlag = (t: string): boolean =>\n  t === '--json' || t === '--input' || t.startsWith('--input=');","tryCatchPattern":"try { await teamApi(args); } catch (e) {\n  if (e instanceof Error && e.message.startsWith('Unknown argument for \"omx team api\"')) { /* strip offending token, show usage */ }\n  else throw e;\n}","preventionTips":["Don't copy flag sets across subcommands; check each subcommand's usage line.","Keep a shared arg whitelist in wrapper scripts."],"tags":["cli","unknown-flag","usage-error"],"backgroundTag":"unknown-cli-option","analyzedSha":"3ad79a8a6fe6e95fdbb8c00e40716fffe4011ce2","analyzedAt":"2026-08-27T22:18:39.783Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}