musistudio/claude-code-router · error

Profile "${needle}" is ambiguous. Use the profile ID instead

Error message

Profile "${needle}" is ambiguous. Use the profile ID instead.

What it means

Error "Profile "${needle}" is ambiguous. Use the profile ID instead." thrown in musistudio/claude-code-router.

Source

Thrown at packages/core/src/profiles/launch-core.ts:46

  const profiles = config.profile.profiles.filter((profile) => profile.enabled);
  const exactId = profiles.find((profile) => profile.id === needle);
  if (exactId) {
    return exactId;
  }

  const normalizedNeedle = normalizeLookupValue(needle);
  const matches = profiles.filter((profile) =>
    normalizeLookupValue(profile.name) === normalizedNeedle ||
    normalizeLookupValue(profile.id) === normalizedNeedle ||
    sanitizePathSegment(profile.name) === normalizedNeedle ||
    sanitizePathSegment(profile.id) === normalizedNeedle
  );
  if (matches.length === 1) {
    return matches[0];
  }
  if (matches.length > 1) {
    throw new Error(`Profile "${needle}" is ambiguous. Use the profile ID instead.`);
  }
  throw new Error(`Profile "${needle}" was not found or is disabled.`);
}

export function profileOpenSurfaces(profile: ProfileConfig): ProfileOpenSurface[] {
  if (profile.agent === "workbuddy" || profile.agent === "zcode" || profile.agent === "claude-design") {
    return ["app"];
  }
  if (profile.agent === "grok" || profile.agent === "kimi" || profile.agent === "pi" || profile.agent === "kilo") {
    return ["cli"];
  }
  const surface = normalizeProfileSurface(profile.surface);
  if (surface === "cli") {
    return ["cli"];
  }
  if (surface === "app") {
    return ["app"];
  }

View on GitHub (pinned to 99f24806c6)

When it happens

Trigger: Thrown at packages/core/src/profiles/launch-core.ts:46 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of musistudio/claude-code-router@99f24806c6 (2026-08-27). Data as JSON: /api/errors/a9a80a14b660acca. Report an issue: GitHub.