{"record":{"id":"995553a2ee23b22c","repo":"hasura/graphql-engine","slug":"unknown-data-connector-object-type-data-connector","errorCode":null,"errorMessage":"unknown data connector object type {data_connector_object_type:} (in data connector {data_connector:}) referenced in object boolean expression type {object_boolean_expression_type:}","messagePattern":"unknown data connector object type (.+?) \\(in data connector (.+?)\\) referenced in object boolean expression type (.+?)","errorType":"validation","errorClass":"BooleanExpressionError::UnknownDataConnectorTypeInObjectBooleanExpressionType","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/boolean_expressions/error.rs","lineNumber":39,"sourceCode":"    UnknownTypeInObjectBooleanExpressionType {\n        boolean_expression_type_name: Qualified<CustomTypeName>,\n        type_name: Qualified<CustomTypeName>,\n    },\n    #[error(\n        \"unsupported type '{type_name}' used in object boolean expression. '{boolean_expression_type_name}'; only object types are supported\"\n    )]\n    UnsupportedTypeInObjectBooleanExpressionType {\n        boolean_expression_type_name: Qualified<CustomTypeName>,\n        type_name: Qualified<CustomTypeName>,\n    },\n    #[error(\n        \"unknown data connector {data_connector:} referenced in object boolean expression type {object_boolean_expression_type:}\"\n    )]\n    UnknownDataConnectorInObjectBooleanExpressionType {\n        data_connector: Qualified<DataConnectorName>,\n        object_boolean_expression_type: Qualified<CustomTypeName>,\n    },\n    #[error(\n        \"unknown data connector object type {data_connector_object_type:} (in data connector {data_connector:}) referenced in object boolean expression type {object_boolean_expression_type:}\"\n    )]\n    UnknownDataConnectorTypeInObjectBooleanExpressionType {\n        data_connector: Qualified<DataConnectorName>,\n        data_connector_object_type: DataConnectorObjectType,\n        object_boolean_expression_type: Qualified<CustomTypeName>,\n    },\n    #[error(\n        \"unknown field '{field_name:}' used in object boolean expression type {object_boolean_expression_type:}\"\n    )]\n    UnknownFieldInObjectBooleanExpressionType {\n        field_name: FieldName,\n        object_boolean_expression_type: Qualified<CustomTypeName>,\n    },\n    #[error(\n        \"relationship '{relationship_name}' is used in comparableRelationships in boolean expression type '{object_boolean_expression_type}' does not exist on type '{type_name}'\"\n    )]\n    UnknownRelationshipInObjectBooleanExpressionType {","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/boolean_expressions/error.rs#L21-L57","documentation":"While resolving an object boolean expression, the backing object type maps to a named data connector object type (e.g. a specific table/collection) that the data connector does not expose or that is not present in the connector's schema. The mapping references a DataConnectorObjectType that cannot be found for the given connector.","triggerScenarios":"A type mapping in OpenDD specifies a data connector object type (table name) that does not exist in the connector's schema; introspecting a database and renaming/dropping the table afterwards; connector schema out of sync with the metadata mappings.","commonSituations":"Database schema drift: tables renamed/dropped after metadata was generated; stale metadata after regenerating connector schemas; copy-paste typos in dataConnectorObjectType names in type mappings.","solutions":["Verify the data connector object type name in the error against the connector's actual schema (e.g. introspect the database tables)","Fix the type mapping to use the correct table/collection name","Re-introspect/regenerate connector metadata if the schema changed","Rebuild metadata"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Compare mapped connector object types against the connector's schema before resolving\nlet schema_types: HashSet<String> = connector_schema.object_types();\nfor m in object_type.mappings_for(&connector) {\n    if !schema_types.contains(&m.data_connector_object_type) {\n        return Err(format!(\"table/collection '{}' not present in connector schema\", m.data_connector_object_type));\n    }\n}","typeGuard":null,"tryCatchPattern":"match resolve(metadata) {\n    Err(BooleanExpressionError::UnknownDataConnectorTypeInObjectBooleanExpressionType { data_connector, data_connector_object_type, .. }) => {\n        // re-introspect connector or fix the type mapping name\n    }\n    other => other,\n}","preventionTips":["Regenerate connector metadata after any database schema change","Run a drift check (metadata mappings vs introspected schema) in CI"],"tags":["hasura","ddn","metadata","boolean-expressions","data-connector","schema-drift","rust"],"backgroundTag":"data-connector-object-type-not-found","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}