{"record":{"id":"0e6c50d95c805646","repo":"deepseek-ai/deepseek-harness","slug":"alias-id-has-no-type-node","errorCode":null,"errorMessage":"alias ${id} has no type node","messagePattern":"alias (.+?) has no type node","errorType":"exception","errorClass":"TypeGraphRenderError","httpStatus":null,"severity":"error","filePath":"packages/typert/generator/src/renderer.ts","lineNumber":221,"sourceCode":"      default: return assertNever(member)\n    }\n  }\n\n  /**\n   * Render a named declaration without JSDoc.\n   * @param id - declaration symbol id.\n   * @returns exported TypeScript declaration text.\n   */\n  renderDeclaration(id: SymbolId): string {\n    const declaration = this.declaration(id)\n    const parameters = this.renderTypeParameters(declaration.typeParameters)\n    if (declaration.kind === 'enum') {\n      const members = declaration.enumMembers?.map(member =>\n        `    ${renderPropertyName(member.name)}${member.initializer === undefined ? '' : ` = ${member.initializer}`},`) ?? []\n      return [`export enum ${declaration.name} {`, ...members, '}'].join('\\n')\n    }\n    if (declaration.kind === 'alias') {\n      if (declaration.type === undefined) throw new TypeGraphRenderError(`alias ${id} has no type node`)\n      return `export type ${declaration.name}${parameters} = ${this.renderType(declaration.type)};`\n    }\n    const extendsTypes = declaration.extends.map(type => this.renderType(type))\n    const implementsTypes = declaration.implements.map(type => this.renderType(type))\n    const heritage = [\n      extendsTypes.length === 0 ? '' : ` extends ${extendsTypes.join(', ')}`,\n      implementsTypes.length === 0 ? '' : ` implements ${implementsTypes.join(', ')}`,\n    ].join('')\n    const prefix = declaration.kind === 'class' && declaration.abstract ? 'abstract ' : ''\n    const members = declaration.members.map(member => `    ${this.renderMember(member)};`)\n    return [`export ${prefix}${declaration.kind} ${declaration.name}${parameters}${heritage} {`, ...members, '}'].join('\\n')\n  }\n\n  /**\n   * Find the transitive declaration closure referenced by members.\n   * @param memberIds - business-API member ids.\n   * @returns declarations in graph order, excluding no roots implicitly.\n   */","sourceCodeStart":203,"sourceCodeEnd":239,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/typert/generator/src/renderer.ts#L203-L239","documentation":"Error \"alias ${id} has no type node\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/typert/generator/src/renderer.ts:221 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the alias so it resolves to a type node; regenerate the type graph."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}