{"id":"ecd8889d0173406e","repo":"docker/cli","slug":"too-many-colons","errorCode":null,"errorMessage":"too many colons","messagePattern":"too many colons","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/volumespec/volumespec.go","lineNumber":72,"sourceCode":"}\n\nfunc populateFieldFromBuffer(char rune, buffer []rune, volume *VolumeConfig) error {\n\tstrBuffer := string(buffer)\n\tswitch {\n\tcase len(buffer) == 0:\n\t\treturn errors.New(\"empty section between colons\")\n\t// Anonymous volume\n\tcase volume.Source == \"\" && char == endOfSpec:\n\t\tvolume.Target = strBuffer\n\t\treturn nil\n\tcase volume.Source == \"\":\n\t\tvolume.Source = strBuffer\n\t\treturn nil\n\tcase volume.Target == \"\":\n\t\tvolume.Target = strBuffer\n\t\treturn nil\n\tcase char == ':':\n\t\treturn errors.New(\"too many colons\")\n\t}\n\tfor option := range strings.SplitSeq(strBuffer, \",\") {\n\t\tswitch option {\n\t\tcase \"ro\":\n\t\t\tvolume.ReadOnly = true\n\t\tcase \"rw\":\n\t\t\tvolume.ReadOnly = false\n\t\tcase \"nocopy\":\n\t\t\tvolume.Volume = &VolumeOpts{NoCopy: true}\n\t\tdefault:\n\t\t\tif isBindOption(option) {\n\t\t\t\tvolume.Bind = &BindOpts{Propagation: option}\n\t\t\t}\n\t\t\t// ignore unknown options\n\t\t}\n\t}\n\treturn nil\n}","sourceCodeStart":54,"sourceCodeEnd":90,"githubUrl":"https://github.com/docker/cli/blob/e9452d6e785f6e365712b9d71bd7517591773c86/internal/volumespec/volumespec.go#L54-L90","documentation":"Error \"too many colons\" thrown in docker/cli.","triggerScenarios":"Thrown at internal/volumespec/volumespec.go:72 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"e9452d6e785f6e365712b9d71bd7517591773c86","analyzedAt":"2026-08-01T07:09:22.474Z","schemaVersion":2}