{"record":{"id":"49c32075dfd0d016","repo":"ComposioHQ/composio","slug":"invalid-composio-cli-release-tag-releasetag","errorCode":null,"errorMessage":"Invalid Composio CLI release tag: ${releaseTag}","messagePattern":"Invalid Composio CLI release tag: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"ts/packages/cli/src/utils/cli-release-version.ts","lineNumber":17,"sourceCode":"export const CLI_RELEASE_TAG_PREFIX = '@composio/cli@';\nexport const CLI_RELEASE_VERSION_DEFINE = '__COMPOSIO_CLI_RELEASE_VERSION__';\n\nconst CLI_RELEASE_TAG_PATTERN =\n  /^@composio\\/cli@(\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?)$/u;\n\nexport const extractCliReleaseVersion = (releaseTag: string): string | undefined =>\n  CLI_RELEASE_TAG_PATTERN.exec(releaseTag.trim())?.[1];\n\nexport const buildCliReleaseVersionDefineArgs = (\n  releaseTag: string | undefined\n): ReadonlyArray<string> => {\n  if (!releaseTag?.trim()) return [];\n\n  const releaseVersion = extractCliReleaseVersion(releaseTag);\n  if (!releaseVersion) {\n    throw new Error(`Invalid Composio CLI release tag: ${releaseTag}`);\n  }\n\n  return ['--define', `${CLI_RELEASE_VERSION_DEFINE}=${JSON.stringify(releaseVersion)}`] as const;\n};\n","sourceCodeStart":1,"sourceCodeEnd":22,"githubUrl":"https://github.com/ComposioHQ/composio/blob/64b1b85502b1beeb2379e6c9e8bf1104504fa637/ts/packages/cli/src/utils/cli-release-version.ts#L1-L22","documentation":"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.","triggerScenarios":"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.","commonSituations":"Custom build scripts or CI jobs passing a wrongly formatted git tag; version-tag format drift after a release-process change.","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"],"exampleFix":"// before\nbuildCliReleaseVersionDefineArgs({ releaseTag: 'latest' });\n// after\nbuildCliReleaseVersionDefineArgs({ releaseTag: 'cli-v1.2.3' });","handlingStrategy":"validation","validationCode":"const ok = /^cli-v\\d+\\.\\d+\\.\\d+$/.test(releaseTag ?? '');\nif (!ok && releaseTag?.trim()) throw new Error('bad tag');","typeGuard":"const isValidReleaseTag = (t?: string) => !!t?.trim() && extractCliReleaseVersion(t) !== null;","tryCatchPattern":null,"preventionTips":["Validate release tags at CI input boundaries","Use the same tag regex the library uses"],"tags":["build","release","validation","typescript"],"backgroundTag":"invalid-version-string","analyzedSha":"64b1b85502b1beeb2379e6c9e8bf1104504fa637","analyzedAt":"2026-08-28T15:39:33.623Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}