{"record":{"id":"625527c09c071cb4","repo":"temporalio/temporal","slug":"build-id-is-empty-in-version-string-s","errorCode":null,"errorMessage":"build id is empty in version string %s","messagePattern":"build id is empty in version string (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"common/worker_versioning/worker_versioning.go","lineNumber":1271,"sourceCode":"\tif s == UnversionedVersionId {\n\t\treturn nil, nil\n\t}\n\tbefore, after, found := strings.Cut(s, WorkerDeploymentVersionIDDelimiterV31)\n\t// Also try parsing via the v32 delimiter in case user is using an old CLI/SDK but passing new version strings.\n\tbefore32, after32, found32 := strings.Cut(s, WorkerDeploymentVersionDelimiter)\n\tif !found && !found32 {\n\t\treturn nil, fmt.Errorf(\"expected delimiter '%s' or '%s' not found in version string %s\", WorkerDeploymentVersionDelimiter, WorkerDeploymentVersionIDDelimiterV31, s)\n\t}\n\tif found && found32 && len(before32) < len(before) {\n\t\t// choose the values based on the delimiter appeared first to ensure that deployment name does not contain any of the banned delimiters\n\t\tbefore = before32\n\t\tafter = after32\n\t}\n\tif len(before) == 0 {\n\t\treturn nil, fmt.Errorf(\"deployment name is empty in version string %s\", s)\n\t}\n\tif len(after) == 0 {\n\t\treturn nil, fmt.Errorf(\"build id is empty in version string %s\", s)\n\t}\n\treturn &deploymentspb.WorkerDeploymentVersion{\n\t\tDeploymentName: before,\n\t\tBuildId:        after,\n\t}, nil\n}\n\nfunc WorkerDeploymentVersionFromStringV32(s string) (*deploymentspb.WorkerDeploymentVersion, error) {\n\tif s == UnversionedVersionId {\n\t\treturn nil, nil\n\t}\n\tbefore, after, found := strings.Cut(s, WorkerDeploymentVersionDelimiter)\n\tif !found {\n\t\treturn nil, fmt.Errorf(\"expected delimiter '%s' not found in version string %s\", WorkerDeploymentVersionDelimiter, s)\n\t}\n\tif len(before) == 0 {\n\t\treturn nil, fmt.Errorf(\"deployment name is empty in version string %s\", s)\n\t}","sourceCodeStart":1253,"sourceCodeEnd":1289,"githubUrl":"https://github.com/temporalio/temporal/blob/bde624efd13fbd3843654058db6d9c716166318b/common/worker_versioning/worker_versioning.go#L1253-L1289","documentation":"Error \"build id is empty in version string %s\" thrown in temporalio/temporal.","triggerScenarios":"Thrown at common/worker_versioning/worker_versioning.go:1271 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":"bde624efd13fbd3843654058db6d9c716166318b","analyzedAt":"2026-09-01T07:18:39.080Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}