hasura/graphql-engine · error
setting up global config failed: %w
Error message
setting up global config failed: %w
What it means
While generating boolean expression types for a data connector, the resolver could not find operator mappings for the specified data connector. Operator mappings (e.g. equality, comparison operators) are part of a data connector's capabilities and are required to build filter expressions.
Source
Thrown at cli/cli.go:541
}
ec.CMDName = cmdName
ec.IsTerminal = term.IsTerminal(int(os.Stdout.Fd()))
// set spinner
ec.setupSpinner()
// set logger
ec.setupLogger()
// populate version
ec.setVersion()
// setup global config
err := ec.setupGlobalConfig()
if err != nil {
return errors.E(op, fmt.Errorf("setting up global config failed: %w", err))
}
if !ec.proPluginVersionValidated {
ec.validateProPluginVersion()
ec.proPluginVersionValidated = true
}
ec.LastUpdateCheckFile = filepath.Join(ec.GlobalConfigDir, LastUpdateCheckFileName)
// initialize a blank server config
if ec.Config == nil {
ec.Config = &Config{}
}
// generate an execution id
if ec.ID == "" {
ec.ID = uuid.NewString()
ec.Logger.Debugf("execution id: %v", ec.ID)View on GitHub (pinned to 724551b9ae)
Solutions
- Verify the data connector's /capabilities endpoint returns operator mappings
- Upgrade or fix the data connector so it advertises the operators you filter with
- Refresh/re-fetch connector capabilities (clear any capability cache) and re-resolve metadata
- If you don't need filters, remove filter arguments from the affected model/command
Example fix
// before (connector capabilities missing operators)
{ "capabilities": { "models": {} } }
// after
{ "capabilities": { "models": {}, "operators": { "_eq": { "name": "equal", "operand_type": "string" } } } } Defensive patterns
Strategy: validation
Validate before calling
// Fetch and inspect connector capabilities before using filters
const caps = await fetchConnectorCapabilities(name);
if (!caps?.operators || Object.keys(caps.operators).length === 0) {
throw new Error(`Connector ${name} has no operator mappings; filters unsupported`);
} Type guard
const hasOperatorMappings = (caps) => !!caps?.operators && Object.keys(caps.operators).length > 0;
Try / catch
try { buildFilter(...); } catch (e) { if (e?.code === 'OperatorMappingsNotFound') disableFiltersFor(e.data_connector_name); else throw e; } Prevention
- Check connector capabilities at startup and degrade gracefully when operators are absent
- Keep connector SDK versions in sync with the engine
When it happens
Trigger: Resolving filter predicates against a data connector whose reported capabilities/metadata do not include operator mappings; using a custom data connector that doesn't implement or advertise operator mappings; referencing a data connector whose capability document was fetched with a stale cached version.
Common situations: Custom/Agent data connectors that omit operatorMappings from their capabilities response; upgrading a connector that changed its capabilities schema; stale connector capability caching after connector upgrade.
Related errors
- cannot get absolute path: %w
- validating current directory failed: %w
- loading .env file failed: %w
- Relationship '{name}' is either remote or not having 'relati
- the aggregate expression {name} defines an aggregation funct
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/a98345315da62ff5.
Report an issue: GitHub.