{"record":{"id":"a98345315da62ff5","repo":"hasura/graphql-engine","slug":"setting-up-global-config-failed-w","errorCode":null,"errorMessage":"setting up global config failed: %w","messagePattern":"setting up global config failed: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/cli.go","lineNumber":541,"sourceCode":"\t}\n\n\tec.CMDName = cmdName\n\n\tec.IsTerminal = term.IsTerminal(int(os.Stdout.Fd()))\n\n\t// set spinner\n\tec.setupSpinner()\n\n\t// set logger\n\tec.setupLogger()\n\n\t// populate version\n\tec.setVersion()\n\n\t// setup global config\n\terr := ec.setupGlobalConfig()\n\tif err != nil {\n\t\treturn errors.E(op, fmt.Errorf(\"setting up global config failed: %w\", err))\n\t}\n\n\tif !ec.proPluginVersionValidated {\n\t\tec.validateProPluginVersion()\n\t\tec.proPluginVersionValidated = true\n\t}\n\n\tec.LastUpdateCheckFile = filepath.Join(ec.GlobalConfigDir, LastUpdateCheckFileName)\n\n\t// initialize a blank server config\n\tif ec.Config == nil {\n\t\tec.Config = &Config{}\n\t}\n\n\t// generate an execution id\n\tif ec.ID == \"\" {\n\t\tec.ID = uuid.NewString()\n\t\tec.Logger.Debugf(\"execution id: %v\", ec.ID)","sourceCodeStart":523,"sourceCodeEnd":559,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/cli/cli.go#L523-L559","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before (connector capabilities missing operators)\n{ \"capabilities\": { \"models\": {} } }\n// after\n{ \"capabilities\": { \"models\": {}, \"operators\": { \"_eq\": { \"name\": \"equal\", \"operand_type\": \"string\" } } } }","handlingStrategy":"validation","validationCode":"// Fetch and inspect connector capabilities before using filters\nconst caps = await fetchConnectorCapabilities(name);\nif (!caps?.operators || Object.keys(caps.operators).length === 0) {\n  throw new Error(`Connector ${name} has no operator mappings; filters unsupported`);\n}","typeGuard":"const hasOperatorMappings = (caps) => !!caps?.operators && Object.keys(caps.operators).length > 0;","tryCatchPattern":"try { buildFilter(...); } catch (e) { if (e?.code === 'OperatorMappingsNotFound') disableFiltersFor(e.data_connector_name); else throw e; }","preventionTips":["Check connector capabilities at startup and degrade gracefully when operators are absent","Keep connector SDK versions in sync with the engine"],"tags":["data-connector","operator-mappings","capabilities","filtering"],"backgroundTag":"missing-operator-mappings","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}