{"record":{"id":"c404163797bdd348","repo":"nektos/act","slug":"sunknown-property-v","errorCode":null,"errorMessage":"%sUnknown Property %v","messagePattern":"(.+?)Unknown Property (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/schema/schema.go","lineNumber":388,"sourceCode":"\t\t\tif insertDirective.MatchString(k.Value) {\n\t\t\t\tif len(s.Context) == 0 {\n\t\t\t\t\tallErrors = errors.Join(allErrors, fmt.Errorf(\"%sinsert is not allowed here\", formatLocation(k)))\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tisExpr, err := s.checkExpression(k)\n\t\t\tif err != nil {\n\t\t\t\tallErrors = errors.Join(allErrors, err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif isExpr {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvdef, ok := def.Mapping.Properties[k.Value]\n\t\t\tif !ok {\n\t\t\t\tif def.Mapping.LooseValueType == \"\" {\n\t\t\t\t\tallErrors = errors.Join(allErrors, fmt.Errorf(\"%sUnknown Property %v\", formatLocation(k), k.Value))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tvdef = MappingProperty{Type: def.Mapping.LooseValueType}\n\t\t\t}\n\n\t\t\tif err := (&Node{\n\t\t\t\tDefinition: vdef.Type,\n\t\t\t\tSchema:     s.Schema,\n\t\t\t\tContext:    append(append([]string{}, s.Context...), s.Schema.GetDefinition(vdef.Type).Context...),\n\t\t\t}).UnmarshalYAML(node.Content[i+1]); err != nil {\n\t\t\t\tallErrors = errors.Join(allErrors, err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t}\n\treturn allErrors\n}\n","sourceCodeStart":370,"sourceCodeEnd":406,"githubUrl":"https://github.com/nektos/act/blob/4f411281417e88660bea1c1a1749aa71ae0bd60f/pkg/schema/schema.go#L370-L406","documentation":"Validation error from Node.checkMapping (schema.go:388): a mapping key is not found in the schema's Properties for that node, and the mapping does not define a LooseValueType (which would accept any key). Unknown keys are rejected to catch typos and misplaced fields.","triggerScenarios":"Misspelled or misplaced keys: `envs:` instead of `env:`, job-level keys nested under `steps:`, or new GitHub keys absent from act's bundled schema (e.g. a freshly released feature).","commonSituations":"Typos in with:/env/secrets blocks; keys from newer github.actions syntax than the act schema version; keys nested at the wrong indentation level so they validate under the wrong node.","solutions":["Check spelling of the key against the schema's documented properties for that mapping","Fix indentation so the key sits under the correct parent mapping","If the key is valid new GitHub syntax, update act / its schema JSON or report an issue"],"exampleFix":"# before:\n- name: step\n  run: echo hi\n  envs:\n    FOO: bar\n# after:\n- name: step\n  run: echo hi\n  env:\n    FOO: bar","handlingStrategy":"validation","validationCode":"// Optional pre-flight: compare mapping keys against schema properties for known hot spots (with:, env:, job keys)\nfor _, k := range knownKeys {\n    if _, ok := schemaProps[k]; !ok { return fmt.Errorf(\"key %q not in schema\", k) }\n}","typeGuard":null,"tryCatchPattern":"Fatal validation error — fix the key spelling/placement shown at Line/Column.","preventionTips":["Copy key names (env not envs, needs not need) from the docs","Watch indentation so keys land under the right parent","Update act when GitHub ships new workflow keys"],"tags":["go","act","schema-validation","yaml","unknown-property","typos"],"backgroundTag":null,"analyzedSha":"4f411281417e88660bea1c1a1749aa71ae0bd60f","analyzedAt":"2026-08-15T09:19:46.307Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}