{"record":{"id":"71119ede072f2251","repo":"GoogleChrome/lighthouse","slug":"unexpected-tagname-tag-tagname-text","errorCode":null,"errorMessage":"Unexpected tagName \"@${tag.tagName.text}\"","messagePattern":"Unexpected tagName \"@(.+?)\"","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/scripts/i18n/collect-strings.js","lineNumber":87,"sourceCode":"  }\n\n  if ('tags' in ast && ast.tags) {\n    // This is a complex description with description and examples.\n    let description = '';\n    /** @type {Record<string, string>} */\n    const examples = {};\n\n    for (const tag of ast.tags) {\n      const comment = coerceToSingleLineAndTrim(tag.comment);\n\n      if (tag.tagName.text === 'description') {\n        description = comment;\n      } else if (tag.tagName.text === 'example') {\n        const {placeholderName, exampleValue} = parseExampleJsDoc(comment);\n        examples[placeholderName] = exampleValue;\n      } else {\n        // Until a compelling use case for supporting more @tags, throw to catch typos, etc.\n        throw new Error(`Unexpected tagName \"@${tag.tagName.text}\"`);\n      }\n    }\n\n    if (description.length === 0) throw Error(`Empty @description for message \"${message}\"`);\n    return {description, examples};\n  }\n\n  if (ast.comment) {\n    // The entire comment is the description, so return everything.\n    return {description: coerceToSingleLineAndTrim(ast.comment), examples: {}};\n  }\n\n  throw Error(`Missing description comment for message \"${message}\"`);\n}\n\n/**\n * Collapses a jsdoc comment into a single line and trims whitespace.\n * @param {import('typescript').JSDoc['comment']} comment","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/GoogleChrome/lighthouse/blob/9515cd4e58ebed69f78742d932b501c2cab8ad8f/core/scripts/i18n/collect-strings.js#L69-L105","documentation":"Error \"Unexpected tagName \"@${tag.tagName.text}\"\" thrown in GoogleChrome/lighthouse.","triggerScenarios":"Raised when collect-strings encounters a JSDoc tag it does not support while parsing UIStrings.","commonSituations":"See trigger scenarios.","solutions":["Remove or rename the unexpected @tag in the JSDoc comment.","Only use JSDoc tags supported by collect-strings (e.g. @example)."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9515cd4e58ebed69f78742d932b501c2cab8ad8f","analyzedAt":"2026-08-13T06:28:10.346Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}