gatsbyjs/gatsby · error
GraphQL Resolver ${resolverName}got called without "info" ar
Error message
GraphQL Resolver ${resolverName}got called without "info" argument. This might cause unexpected errors.
It'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:
resolve(parent, args, context, info)
What it means
Error "GraphQL Resolver ${resolverName}got called without "info" argument. This might cause unexpected errors. It'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: resolve(parent, args, context, info) " thrown in gatsbyjs/gatsby.
Source
Thrown at packages/gatsby/src/schema/resolvers.ts:730
resolver: GatsbyResolver<TSource, TArgs>
): GatsbyResolver<TSource, TArgs> {
// Note: we explicitly make an attempt to prevent using the `async` keyword because often
// it does not return a promise and this makes a significant difference at scale.
// GraphQL will gracefully handle the resolver result of a promise or non-promise.
if (resolver[`isTracingResolver`]) {
return resolver
}
const wrappedTracingResolver = function wrappedTracingResolver(
parent,
args,
context,
info
): Promise<any> {
if (!WARNED_ABOUT_RESOLVERS) {
if (!info) {
reporter.warn(badResolverInvocationMessage(`info`))
WARNED_ABOUT_RESOLVERS = true
} else if (!context) {
reporter.warn(badResolverInvocationMessage(`context`, info.path))
WARNED_ABOUT_RESOLVERS = true
}
}
let activity
let time
if (context?.tracer) {
activity = context.tracer.createResolverActivity(
info.path,
`${info.parentType.name}.${info.fieldName}`
)
activity.start()
}
if (context?.telemetryResolverTimings) {
time = process.hrtime.bigint()View on GitHub (pinned to e85d62f177)
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
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/gatsby/src/schema/resolvers.ts:730 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of gatsbyjs/gatsby@e85d62f177 (2026-08-26).
Data as JSON: /api/errors/b1d9fae8c76e6406.
Report an issue: GitHub.