{"record":{"id":"b1d9fae8c76e6406","repo":"gatsbyjs/gatsby","slug":"graphql-resolver-resolvername-got-called-without","errorCode":null,"errorMessage":"GraphQL Resolver ${resolverName}got called without \"info\" argument. This might cause unexpected errors.\n\nIt's likely that this has happened in a schemaCustomization with manually invoked resolver. If manually invoking resolvers, it's best to invoke them as follows:\n\n  resolve(parent, args, context, info)\n\n","messagePattern":"GraphQL Resolver (.+?)got called without \"info\" argument\\. This might cause unexpected errors\\.\n\nIt's likely that this has happened in a schemaCustomization with manually invoked resolver\\. If manually invoking resolvers, it's best to invoke them as follows:\n\n  resolve\\(parent, args, context, info\\)\n\n","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby/src/schema/resolvers.ts","lineNumber":730,"sourceCode":"  resolver: GatsbyResolver<TSource, TArgs>\n): GatsbyResolver<TSource, TArgs> {\n  // Note: we explicitly make an attempt to prevent using the `async` keyword because often\n  //       it does not return a promise and this makes a significant difference at scale.\n  //       GraphQL will gracefully handle the resolver result of a promise or non-promise.\n\n  if (resolver[`isTracingResolver`]) {\n    return resolver\n  }\n\n  const wrappedTracingResolver = function wrappedTracingResolver(\n    parent,\n    args,\n    context,\n    info\n  ): Promise<any> {\n    if (!WARNED_ABOUT_RESOLVERS) {\n      if (!info) {\n        reporter.warn(badResolverInvocationMessage(`info`))\n        WARNED_ABOUT_RESOLVERS = true\n      } else if (!context) {\n        reporter.warn(badResolverInvocationMessage(`context`, info.path))\n        WARNED_ABOUT_RESOLVERS = true\n      }\n    }\n\n    let activity\n    let time\n    if (context?.tracer) {\n      activity = context.tracer.createResolverActivity(\n        info.path,\n        `${info.parentType.name}.${info.fieldName}`\n      )\n      activity.start()\n    }\n    if (context?.telemetryResolverTimings) {\n      time = process.hrtime.bigint()","sourceCodeStart":712,"sourceCodeEnd":748,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby/src/schema/resolvers.ts#L712-L748","documentation":"Error \"GraphQL Resolver ${resolverName}got called without \"info\" argument. This might cause unexpected errors.\n\nIt's likely that this has happened in a schemaCustomization with manually invoked resolver. If manually invoking resolvers, it's best to invoke them as follows:\n\n  resolve(parent, args, context, info)\n\n\" thrown in gatsbyjs/gatsby.","triggerScenarios":"Thrown at packages/gatsby/src/schema/resolvers.ts:730 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["When manually invoking resolvers in schemaCustomization, pass all four arguments: resolve(parent, args, context, info)","Use gatsby's wrappedResolveWithContext / wrapResolvers helpers instead of calling resolvers directly","Guard manual resolver calls in custom code so info is always supplied"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e85d62f1779e353eaac1753211629a26d123e26c","analyzedAt":"2026-08-26T17:50:09.662Z","contentChangedAt":"2026-08-26T17:50:09.662Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}