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
- Pass a correctly formatted release tag (e.g. 'cli-v1.2.3' per the expected pattern)
- Check extractCliReleaseVersion's regex/format and align the tag to it
- 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
- Validate release tags at CI input boundaries
- Use the same tag regex the library uses
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
- experimental_subAgent() target must be "claude", "codex", or
- Invalid
- Invalid
- Invalid arguments for local tool ${resolution.finalSlug}: ${
- Failed to parse create connected account link options
AI-assisted analysis of ComposioHQ/composio@64b1b85502 (2026-08-28).
Data as JSON: /api/errors/49c32075dfd0d016.
Report an issue: GitHub.