{"record":{"id":"c2d93288a45d3932","repo":"paperclipai/paperclip","slug":"unsupported-local-provider-smoke-profile-profil","errorCode":null,"errorMessage":"Unsupported local provider smoke profile: ${profile}","messagePattern":"Unsupported local provider smoke profile: (.+?)","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/paperclip-runner/scripts/run-local-provider-smoke.mjs","lineNumber":32,"sourceCode":"];\n\nfunction parseProfiles(args) {\n  const selected = [];\n  for (let index = 0; index < args.length; index += 1) {\n    if (args[index] !== \"--profile\" || !args[index + 1]) {\n      throw new Error(\n        `Usage: pnpm smoke:local-provider -- --profile <${PROFILE_IDS.join(\"|\")}|all>`,\n      );\n    }\n    selected.push(args[++index]);\n  }\n  if (selected.length === 0) return [\"runner-acpx-claude\"];\n  const expanded = selected.flatMap((profile) =>\n    profile === \"all\" ? PROFILE_IDS : [profile],\n  );\n  for (const profile of expanded) {\n    if (!PROFILE_IDS.includes(profile)) {\n      throw new Error(`Unsupported local provider smoke profile: ${profile}`);\n    }\n  }\n  return [...new Set(expanded)];\n}\n\nfunction liveCandidate(id, candidateSlots) {\n  const candidates = candidateSlots.flatMap((slot) => slot.candidates);\n  if (id === \"runner-acpx-claude\") {\n    return candidates.find(\n      (candidate) => candidate.id === \"acpx-claude-sonnet\",\n    );\n  }\n  if (id === \"runner-acpx-codex\") {\n    return candidates.find((candidate) => candidate.id === \"acpx-codex-sol\");\n  }\n  if (id === \"runner-codex\") {\n    const source = candidates.find(\n      (candidate) => candidate.id === \"codex-luna\",","sourceCodeStart":14,"sourceCodeEnd":50,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/packages/paperclip-runner/scripts/run-local-provider-smoke.mjs#L14-L50","documentation":"After expanding selected --profile values, parseProfiles verifies each expanded profile is a member of PROFILE_IDS. Any unrecognized profile name throws this error listing the offending value. This runs after the flag-shape check (error 110), so the flag was well-formed but the value was wrong.","triggerScenarios":"`pnpm smoke:local-provider -- --profile runner-foo` where runner-foo is not in PROFILE_IDS, or `--profile all,typo` style comma values (each comma-joined string is treated as one profile name).","commonSituations":"Guessing a profile name instead of checking the catalog, using a profile that exists in another eval script but not this one, or passing comma-separated values where the script expects repeated flags.","solutions":["Use an exact profile id from PROFILE_IDS in run-local-provider-smoke.mjs (e.g. runner-acpx-claude).","Use `--profile all` to run every supported profile.","Repeat the --profile flag instead of comma-separating: `--profile a --profile b`."],"exampleFix":"// before\npnpm smoke:local-provider -- --profile claude-code\n// after\npnpm smoke:local-provider -- --profile all","handlingStrategy":"validation","validationCode":"const PROFILE_IDS = ['runner-acpx-claude']; // from script source\nfor (const p of myProfiles) if (!PROFILE_IDS.includes(p) && p !== 'all') throw new Error(`bad profile ${p}`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Copy profile ids from the script source","Use --profile all","Prefer repeated flags over comma-joined values"],"tags":["cli","invalid-value","enum","smoke-test"],"backgroundTag":"invalid-enum-value","analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-09-10T03:14:50.855Z","contentChangedAt":"2026-09-10T03:14:50.855Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}