{"record":{"id":"795806d02029970e","repo":"gatsbyjs/gatsby","slug":"types-implementing-queryable-interfaces-must-also-795806","errorCode":null,"errorMessage":"Types implementing queryable interfaces must also implement the `Node` interface. Check the type definition of `${Array.from(incorrectTypes).map(t => `${t}`).join(`, `)}`.","messagePattern":"Types implementing queryable interfaces must also implement the `Node` interface\\. Check the type definition of `(.+?)`\\)\\.join\\(`, `\\)\\}`\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby/src/schema/schema.js","lineNumber":1405,"sourceCode":"      queryableInterfaces.add(type.getTypeName())\n    }\n  })\n  const incorrectTypes = new Set()\n  schemaComposer.forEach(type => {\n    if (type instanceof ObjectTypeComposer) {\n      const interfaces = type.getInterfaces()\n      if (\n        interfaces.some(iface =>\n          queryableInterfaces.has(iface.getTypeName())\n        ) &&\n        !type.hasInterface(`Node`)\n      ) {\n        incorrectTypes.add(type.getTypeName())\n      }\n    }\n  })\n  if (incorrectTypes.size) {\n    report.panic(\n      `Types implementing queryable interfaces must also implement the \\`Node\\` ` +\n        `interface. Check the type definition of ` +\n        `${Array.from(incorrectTypes)\n          .map(t => `\\`${t}\\``)\n          .join(`, `)}.`\n    )\n  }\n}\n\nconst mergeFields = ({ typeComposer, fields }) =>\n  Object.entries(fields).forEach(([fieldName, fieldConfig]) => {\n    if (typeComposer.hasField(fieldName)) {\n      typeComposer.extendField(fieldName, fieldConfig)\n    } else {\n      typeComposer.setField(fieldName, fieldConfig)\n    }\n  })\n","sourceCodeStart":1387,"sourceCodeEnd":1423,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby/src/schema/schema.js#L1387-L1423","documentation":"Error \"Types implementing queryable interfaces must also implement the `Node` interface. Check the type definition of `${Array.from(incorrectTypes).map(t => `${t}`).join(`, `)}`.\" thrown in gatsbyjs/gatsby.","triggerScenarios":"Thrown at packages/gatsby/src/schema/schema.js:1405 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the `Node` interface to each listed type's definition passed to createTypes","Or stop making those types queryable (remove the queryable interface / searchable fields) so they are not pulled into queryAll types"],"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"}