ComposioHQ/composio · error · Error

Invalid Composio CLI release tag: ${releaseTag}

Error message

Invalid Composio CLI release tag: ${releaseTag}

What it means

buildCliReleaseVersionDefineArgs was given a release tag that extractCliReleaseVersion could not parse into a version. The tag must match the expected CLI release tag format so it can be embedded as a --define build constant.

Source

Thrown at ts/packages/cli/src/utils/cli-release-version.ts:17

export const CLI_RELEASE_TAG_PREFIX = '@composio/cli@';
export const CLI_RELEASE_VERSION_DEFINE = '__COMPOSIO_CLI_RELEASE_VERSION__';

const CLI_RELEASE_TAG_PATTERN =
  /^@composio\/cli@(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)$/u;

export const extractCliReleaseVersion = (releaseTag: string): string | undefined =>
  CLI_RELEASE_TAG_PATTERN.exec(releaseTag.trim())?.[1];

export const buildCliReleaseVersionDefineArgs = (
  releaseTag: string | undefined
): ReadonlyArray<string> => {
  if (!releaseTag?.trim()) return [];

  const releaseVersion = extractCliReleaseVersion(releaseTag);
  if (!releaseVersion) {
    throw new Error(`Invalid Composio CLI release tag: ${releaseTag}`);
  }

  return ['--define', `${CLI_RELEASE_VERSION_DEFINE}=${JSON.stringify(releaseVersion)}`] as const;
};

View on GitHub (pinned to 64b1b85502)

Solutions

  1. Pass a correctly formatted release tag (e.g. 'cli-v1.2.3' per the expected pattern)
  2. Check extractCliReleaseVersion's regex/format and align the tag to it
  3. Skip the arg entirely for local builds by omitting the release tag

Example fix

// before
buildCliReleaseVersionDefineArgs({ releaseTag: 'latest' });
// after
buildCliReleaseVersionDefineArgs({ releaseTag: 'cli-v1.2.3' });
Defensive patterns

Strategy: validation

Validate before calling

const ok = /^cli-v\d+\.\d+\.\d+$/.test(releaseTag ?? '');
if (!ok && releaseTag?.trim()) throw new Error('bad tag');

Type guard

const isValidReleaseTag = (t?: string) => !!t?.trim() && extractCliReleaseVersion(t) !== null;

Prevention

When it happens

Trigger: Passing a malformed --release-tag value (empty after trim is fine, but non-empty garbage like 'latest' or 'vX.Y' fails) to the CLI release build define-args helper.

Common situations: Custom build scripts or CI jobs passing a wrongly formatted git tag; version-tag format drift after a release-process change.

Related errors


AI-assisted analysis of ComposioHQ/composio@64b1b85502 (2026-08-28). Data as JSON: /api/errors/49c32075dfd0d016. Report an issue: GitHub.