{"record":{"id":"a6fdc8dfbddb5b5f","repo":"argoproj/argo-workflows","slug":"unknown-kind-s","errorCode":null,"errorMessage":"unknown kind: %s","messagePattern":"unknown kind: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/argo/lint/lint.go","lineNumber":312,"sourceCode":"\t\t\tres.WorkflowTemplatesClient, err = client.NewWorkflowTemplateServiceClient()\n\t\t\tif err != nil {\n\t\t\t\treturn ServiceClients{}, err\n\t\t\t}\n\n\t\tcase wf.CronWorkflowPlural, wf.CronWorkflowShortName:\n\t\t\tres.CronWorkflowsClient, err = client.NewCronWorkflowServiceClient()\n\t\t\tif err != nil {\n\t\t\t\treturn ServiceClients{}, err\n\t\t\t}\n\n\t\tcase wf.ClusterWorkflowTemplatePlural, wf.ClusterWorkflowTemplateShortName:\n\t\t\tres.ClusterWorkflowTemplateClient, err = client.NewClusterWorkflowTemplateServiceClient()\n\t\t\tif err != nil {\n\t\t\t\treturn ServiceClients{}, err\n\t\t\t}\n\n\t\tdefault:\n\t\t\treturn res, fmt.Errorf(\"unknown kind: %s\", kind)\n\t\t}\n\t}\n\n\treturn res, nil\n}\n","sourceCodeStart":294,"sourceCodeEnd":318,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/cmd/argo/lint/lint.go#L294-L318","documentation":"getLintClients builds the API service clients for each kind passed to `argo lint --kinds`. Only workflow, workflowtemplate, cronworkflow, clusterworkflowtemplate (and empty/all) are recognized; anything else returns `unknown kind: %s`. It is an allowlist check before any linting starts.","triggerScenarios":"`argo lint --kinds pod my-file.yaml` or `--kinds workfloo` (typo); scripts passing a kind name valid in kubectl but not in argo (e.g. `deployment`); older CLI versions missing a kind added later (e.g. clusterworkflowtemplate).","commonSituations":"Users assuming argo lint validates arbitrary Kubernetes manifests; copy-pasted --kinds values from other tooling; version mismatch where a newer kind name is used with an old argo binary.","solutions":["Use only supported kinds: workflow, workflowtemplate, cronworkflow, clusterworkflowtemplate (comma-separated or omitted to lint all known kinds).","Fix typos in the --kinds value; check `argo lint --help`.","Upgrade the argo CLI if linting kinds introduced in newer versions."],"exampleFix":"// before\nargo lint --kinds deployment ./manifests\n// after\nargo lint --kinds workflow,workflowtemplate ./manifests","handlingStrategy":"validation","validationCode":"kinds := []string{\"workflow\",\"workflowtemplate\",\"cronworkflow\",\"clusterworkflowtemplate\"}\nfor _, k := range requested { if !slices.Contains(kinds, k) { return fmt.Errorf(\"unsupported kind %q\", k) } }","typeGuard":null,"tryCatchPattern":"clients, err := getLintClients(ctx, client, kinds)\nif err != nil { return fmt.Errorf(\"argo lint kinds must be workflow|workflowtemplate|cronworkflow|clusterworkflowtemplate: %w\", err) }","preventionTips":["Omit --kinds to lint all supported kinds","Do not pass kubectl-style kinds (deployment, pod) to argo lint","Match CLI version to the kinds your manifests use"],"tags":["cli","lint","flag-validation"],"backgroundTag":"invalid-flag-value","analyzedSha":"35bff19146f5a6ada77468c431f2624bd577e373","analyzedAt":"2026-09-03T19:34:35.908Z","contentChangedAt":"2026-09-03T19:34:35.908Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}