hasura/graphql-engine · warning · BooleanExpressionIssue::DataConnectorDoesNotSupportNestedObjectArrayFiltering
The data connector '{data_connector_name}' does not support
Error message
The data connector '{data_connector_name}' does not support filtering by nested object arrays. The comparable field '{field_name}' within {boolean_expression_type_name}' is of an object array type: {field_type} What it means
Emitted when a comparable field inside a boolean expression type is an object array (array of objects) and the data connector backing the type does not support filtering by nested object arrays.
Source
Thrown at v3/crates/metadata-resolve/src/stages/boolean_expressions/types.rs:26
types::error::ContextualError,
};
use graphql_types as ast;
use open_dds::models::ModelName;
use open_dds::{
data_connector::{DataConnectorName, DataConnectorObjectType, DataConnectorOperatorName},
relationships::RelationshipName,
types::{CustomTypeName, FieldName, OperatorName},
};
use ref_cast::RefCast;
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
use std::collections::{BTreeMap, BTreeSet};
use std::fmt::Display;
use std::sync::Arc;
#[derive(Debug, thiserror::Error, Clone, PartialEq, Eq)]
pub enum BooleanExpressionIssue {
#[error(
"The data connector '{data_connector_name}' does not support filtering by nested object arrays. The comparable field '{field_name}' within {boolean_expression_type_name}' is of an object array type: {field_type}"
)]
DataConnectorDoesNotSupportNestedObjectArrayFiltering {
data_connector_name: Qualified<DataConnectorName>,
boolean_expression_type_name: Qualified<CustomTypeName>,
field_name: FieldName,
field_type: QualifiedTypeReference,
},
#[error(
"The data connector '{data_connector_name}' does not support filtering by nested scalar arrays. The comparable field '{field_name}' within '{boolean_expression_type_name}' is of a scalar array type: {field_type}"
)]
DataConnectorDoesNotSupportNestedScalarArrayFiltering {
data_connector_name: Qualified<DataConnectorName>,
boolean_expression_type_name: Qualified<CustomTypeName>,
field_name: FieldName,
field_type: QualifiedTypeReference,
},
#[error(View on GitHub (pinned to 724551b9ae)
Solutions
- Remove the object-array field from the boolean expression's comparable fields
- Change the field's type to a scalar array or single object if filtering on it is not required
- Use a data connector that supports nested object array filtering, if one exists for your source
Example fix
// before (HML)
types:
Author:
boolean_expression_type: AuthorFilter
fields:
articles: [Article]
comparable: true # object array -> error
// after
types:
Author:
boolean_expression_type: AuthorFilter
fields:
articles: [Article]
comparable: false Defensive patterns
Strategy: validation
Validate before calling
// Reject object-array comparable fields before resolve
for f in &be_type.comparable_fields {
if let QualifiedType::Array(inner) = &f.field_type.underlying {
if matches!(**inner, QualifiedType::Object(_)) {
return Err(format!("{} is an object array; not filterable", f.name));
}
}
} Type guard
fn is_object_array(t: &QualifiedTypeReference) -> bool {
matches!(t.underlying(), QualifiedType::Array(inner) if matches!(**inner, QualifiedType::Object(_)))
} Try / catch
if let BooleanExpressionIssue::DataConnectorDoesNotSupportNestedObjectArrayFiltering { field_name, .. } = &issue {
log::warn!("skipping unfilterable field {field_name}");
} Prevention
- Only mark scalar/relationship fields as comparable
- Check connector capability docs before adding array filters
When it happens
Trigger: Declaring a boolean expression type where a comparable field's QualifiedTypeReference resolves to an object array, while the resolved data connector lacks nested object array filter support.
Common situations: Marking a list-of-objects field as comparable (e.g. via `comparable: true` in Hasura ND HML); connectors like postgres-native that cannot push down nested array comparisons.
Related errors
- The data connector '{data_connector_name}' does not support
- unknown data connector {data_connector:} referenced in objec
- unknown data connector object type {data_connector_object_ty
- data connector error in boolean expression {boolean_expressi
- the type of the comparable field '{field_name}' on the boole
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/f7810d6a248d3c75.
Report an issue: GitHub.