{"record":{"id":"a2a049091df11fcc","repo":"multica-ai/multica","slug":"icon-must-be-a-supported-icon-key","errorCode":null,"errorMessage":"icon must be a supported icon key","messagePattern":"icon must be a supported icon key","errorType":"validation","errorClass":null,"httpStatus":400,"severity":"error","filePath":"server/internal/handler/property.go","lineNumber":216,"sourceCode":"\t}\n\treturn name, nil\n}\n\nfunc validatePropertyIcon(raw string) (string, error) {\n\tfor _, r := range raw {\n\t\tif unicode.IsControl(r) {\n\t\t\treturn \"\", errors.New(\"icon cannot contain tabs, newlines, or control characters\")\n\t\t}\n\t}\n\ticon := strings.TrimSpace(raw)\n\tif utf8.RuneCountInString(icon) > maxPropertyIconLen {\n\t\treturn \"\", fmt.Errorf(\"icon must be %d characters or fewer\", maxPropertyIconLen)\n\t}\n\tif icon == \"\" {\n\t\treturn \"\", nil\n\t}\n\tif _, ok := validPropertyIcons[icon]; !ok {\n\t\treturn \"\", errors.New(\"icon must be a supported icon key\")\n\t}\n\treturn icon, nil\n}\n\nfunc validatePropertyType(t string) error {\n\tfor _, v := range validPropertyTypes {\n\t\tif t == v {\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn fmt.Errorf(\"invalid type %q; valid types: %s\", t, strings.Join(validPropertyTypes, \", \"))\n}\n\nfunc propertyTypeHasOptions(t string) bool {\n\treturn t == \"select\" || t == \"multi_select\"\n}\n\n// validatePropertyConfig canonicalizes the config for storage. Select-type","sourceCodeStart":198,"sourceCodeEnd":234,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/internal/handler/property.go#L198-L234","documentation":"Error \"icon must be a supported icon key\" thrown in multica-ai/multica.","triggerScenarios":"Thrown at server/internal/handler/property.go:216 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of the supported icon keys; list valid keys via the property API."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}