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

  1. Verify the data connector's /capabilities endpoint returns operator mappings
  2. Upgrade or fix the data connector so it advertises the operators you filter with
  3. Refresh/re-fetch connector capabilities (clear any capability cache) and re-resolve metadata
  4. 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

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


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/a98345315da62ff5. Report an issue: GitHub.