{"record":{"id":"c43985a3e631ec48","repo":"musistudio/claude-code-router","slug":"profile-launcher-was-not-found-plan-command-r-c43985","errorCode":null,"errorMessage":"Profile launcher was not found: ${plan.command}. Re-save the profile and try again.","messagePattern":"Profile launcher was not found: (.+?)\\. Re-save the profile and try again\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/core/src/profiles/launch-service.ts","lineNumber":140,"sourceCode":"  assertAvailableGatewayModels(config);\n  await applyProfileConfig(config);\n  const profile = findProfileForOpen(config, request.profileId);\n  const surface = resolveProfileOpenSurface(profile, request.surface);\n  if (profile.agent === \"claude-design\") {\n    throw new Error(\"Claude Design profiles can only be opened from CCR Desktop.\");\n  }\n  if (profile.agent === \"claude-code\" && surface === \"app\") {\n    return openClaudeAppProfile(config, profile);\n  }\n  if ((profile.agent === \"codex\" || profile.agent === \"workbuddy\" || profile.agent === \"zcode\") && surface === \"app\") {\n    return await openCodexAppProfile(config, profile);\n  }\n  if (profile.agent === \"opencode\" && surface === \"app\") {\n    return await openOpenCodeAppProfile(config, profile);\n  }\n  const plan = buildProfileLaunchPlan(CONFIGDIR, profile, surface);\n  if (path.isAbsolute(plan.command) && !existsSync(plan.command)) {\n    throw new Error(`Profile launcher was not found: ${plan.command}. Re-save the profile and try again.`);\n  }\n\n  const launch = profileLaunchSpawnCommand(plan);\n  const child = spawn(launch.command, launch.args, {\n    detached: true,\n    env: {\n      ...process.env,\n      ...plan.env,\n      ...botGatewayProfileEnv(config, profile, surface),\n      ...(profile.agent === \"claude-code\" ? claudeCodeUtcTimezoneEnvOverride() : {})\n    },\n    stdio: \"ignore\"\n  });\n  const spawnError = await waitForImmediateSpawnError(child, 500);\n  if (spawnError) {\n    throw new Error(`Failed to open ${profile.name || profile.id}: ${spawnError}`);\n  }\n  child.unref();","sourceCodeStart":122,"sourceCodeEnd":158,"githubUrl":"https://github.com/musistudio/claude-code-router/blob/99f24806c6a2c660b16e53e95211c517448a6c90/packages/core/src/profiles/launch-service.ts#L122-L158","documentation":"Error \"Profile launcher was not found: ${plan.command}. Re-save the profile and try again.\" thrown in musistudio/claude-code-router.","triggerScenarios":"Thrown at packages/core/src/profiles/launch-service.ts:140 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"99f24806c6a2c660b16e53e95211c517448a6c90","analyzedAt":"2026-08-27T04:11:01.184Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}