Schema validation: missing required property 'kind'

The error “schema validation: missing required property 'kind'” means the document you submitted is missing a top-level kind field that the JSON/YAML schema marks as required — common in Kubernetes manifests, Azure ARM/Bicep resources, Backstage catalogs, and app manifests that expect kind: application.

Platforms that validate documents against a JSON Schema often require a discriminator field named `kind` at the document root so they know how to interpret the rest of the file.

Kubernetes manifests need `kind: Deployment` (or Service, Ingress…), Azure ARM resources use `"kind": "app"` style values, Backstage catalogs need `kind: Component`, and some app-platform manifests expect exactly `kind: application`.

Common causes

  • The top-level kind field was deleted or never added (e.g. kind: Deployment in Kubernetes, "kind": "app" in Azure).
  • The field is present but at the wrong nesting level — inside spec or metadata instead of the document root.
  • A typo or wrong case: Kind, KIND, or kinds will not satisfy a schema that requires kind.
  • Multi-document YAML where one document (often after a --- separator) is missing its own kind.
  • The value is present but empty or of the wrong type (kind: null, or a list instead of a string).

How to narrow it down

  • Open the failing file and check the very first indentation level — `kind` must be a sibling of `apiVersion`/`metadata`, not nested inside them.
  • If the file has several YAML documents separated by ---, find which document the error index points to; each one needs its own kind.
  • Compare against a known-good example from the platform docs and diff the top-level keys.

Examples

Missing kind (fails schema validation)
apiVersion: v1
metadata:
  name: demo
spec:
  replicas: 1

The schema requires a top-level kind before this document is accepted.

Fixed: kind at the document root
apiVersion: v1
kind: application
metadata:
  name: demo
spec:
  replicas: 1

Use the exact value your platform expects (application, Deployment, Component…). Casing matters.

How to fix

  • Add the required property at the document root, e.g. kind: application (or the value your platform expects).
  • Check the schema definition to see the allowed values for kind and copy the exact casing.
  • For multi-document YAML, verify every document between --- separators has its own kind and apiVersion.
  • Validate the document against the schema with the JSON Schema validator below to catch other missing required properties in one pass.

Watch out

  • kind: Application vs kind: application are different values to a strict schema — copy the casing from the schema’s enum.
  • Fixing kind may reveal the next missing required property (apiVersion, metadata.name) — validate again after each fix.

Advertisement

All guides