{"record":{"id":"9bcc23157420a0f7","repo":"hasura/graphql-engine","slug":"unknown-type-custom-type-name","errorCode":null,"errorMessage":"unknown type {custom_type_name}","messagePattern":"unknown type (.+?)","errorType":"validation","errorClass":"ModelPermissionError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/model_permissions/error.rs","lineNumber":53,"sourceCode":"    #[error(\"preset argument '{argument_name}' value has a type error: {type_error}\")]\n    ModelArgumentValuePresetTypeError {\n        argument_name: Spanned<ArgumentName>,\n        value_path: JSONPath,\n        type_error: typecheck::TypecheckError,\n    },\n\n    #[error(\n        \"a preset argument '{argument_name}' has been set for the model '{model_name}' but no such argument exists for this model\"\n    )]\n    ModelArgumentPresetArgumentNotFound {\n        model_name: Spanned<Qualified<ModelName>>,\n        argument_name: Spanned<ArgumentName>,\n    },\n\n    #[error(\"in select filter permissions: {error}\")]\n    SelectFilterPermissionTypePredicateError { error: TypePredicateError },\n\n    #[error(\"unknown type {custom_type_name}\")]\n    UnknownType {\n        custom_type_name: Qualified<CustomTypeName>,\n    },\n\n    #[error(\"model source is required to resolve relational permissions\")]\n    ModelSourceRequiredForRelationalPermissions,\n    #[error(\"unknown collection {collection} in data connector {data_connector}\")]\n    UnknownModelCollection {\n        data_connector: Qualified<DataConnectorName>,\n        collection: open_dds::data_connector::CollectionName,\n    },\n    #[error(\"relational insert is not supported for this model\")]\n    RelationalInsertNotSupported,\n    #[error(\"relational update is not supported for this model\")]\n    RelationalUpdateNotSupported,\n    #[error(\"relational delete is not supported for this model\")]\n    RelationalDeleteNotSupported,\n","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/model_permissions/error.rs#L35-L71","documentation":"UnknownType from the model_permissions stage: a model permission (or its predicate/preset machinery) references a custom object or scalar type name that is not defined in the subgraph's type definitions. The metadata resolver needs every referenced type to exist to resolve permissions.","triggerScenarios":"A model or permission references a Qualified<CustomTypeName> that has no corresponding object type / scalar type definition in the OpenDD metadata, e.g. after deleting a types file or a typo in a type name in model metadata.","commonSituations":"Renaming types without updating models, partial metadata checkouts, copy-paste across subgraphs leaving dangling type references, ordering of type files vs model files during builds.","solutions":["Add the missing type definition (object/scalar) named by {custom_type_name} to the subgraph metadata","Or fix the reference in the model/permission to point at the existing type name (check subgraph prefix and spelling)","Run `ddn build` to confirm all type references resolve"],"exampleFix":"# before\n# model uses type: default/Users  but no Users type is defined\n\n# after\n# add types/users.yaml\nkind: ObjectType\nversion: v1\ndefinition:\n  name: Users\n  fields: [...]","handlingStrategy":"validation","validationCode":"defined = {f\"{subgraph}/{t['definition']['name']}\" for t in object_types + scalar_types}\nreferenced = collect_type_references(models)  # names used by models/permissions\nmissing = referenced - defined\nassert not missing, f'metadata references undefined types: {missing}'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep type files and the models that use them in the same repo/PR","Run `ddn build` in CI so dangling type references fail the build"],"tags":["hasura","ddn","metadata","types","unknown-type"],"backgroundTag":"metadata-unknown-type-reference","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}