{"record":{"id":"22addb707eabe780","repo":"apache/echarts","slug":"not-found","errorCode":null,"errorMessage":"{} \"{}\" not found","messagePattern":"(.+?) \"(.+?)\" not found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/coord/cartesian/cartesianAxisHelper.ts","lineNumber":145,"sourceCode":"}\n\nexport function findAxisModels(seriesModel: SeriesModel): {\n    xAxisModel: CartesianAxisModel;\n    yAxisModel: CartesianAxisModel;\n} {\n    const axisModelMap = {\n        xAxisModel: null,\n        yAxisModel: null\n    } as ReturnType<typeof findAxisModels>;\n    zrUtil.each(axisModelMap, function (v, key) {\n        const axisType = key.replace(/Model$/, '');\n        const axisModel = seriesModel.getReferringComponents(\n            axisType, SINGLE_REFERRING\n        ).models[0] as CartesianAxisModel;\n\n        if (__DEV__) {\n            if (!axisModel) {\n                throw new Error(axisType + ' \"' + zrUtil.retrieve3(\n                    seriesModel.get(axisType + 'Index' as any),\n                    seriesModel.get(axisType + 'Id' as any),\n                    0\n                ) + '\" not found');\n            }\n        }\n\n        axisModelMap[key] = axisModel;\n    });\n\n    return axisModelMap;\n}\n\nexport function createCartesianAxisViewCommonPartBuilder(\n    gridRect: LayoutRect,\n    cartesians: Cartesian2D[],\n    axisModel: CartesianAxisModel,\n    api: ExtensionAPI,","sourceCodeStart":127,"sourceCodeEnd":163,"githubUrl":"https://github.com/apache/echarts/blob/30076aedcd7b7f65d8dd8e8d9ece46ce778133a3/src/coord/cartesian/cartesianAxisHelper.ts#L127-L163","documentation":"DEV-only guard in findAxisModels (cartesianAxisHelper): for a cartesian2d series, both an xAxisModel and a yAxisModel must be resolvable via seriesModel.getReferringComponents using SINGLE_REFERRING semantics. If either is missing (no axis component, or index/id mismatch), it throws with the axisType and resolved index/id. Stripped in production.","triggerScenarios":"Cartesian series whose xAxisIndex/xAxisId or yAxisIndex/yAxisId do not match any registered axis; axis component not imported on modular builds; axisIndex out of range.","commonSituations":"Modular build missing the CartesianAxis components; axisIndex beyond the declared axes array; axisId typo; series referencing an axis before it is declared.","solutions":["Register the axis components on modular builds (GridComponent brings xAxis/yAxis)","Ensure every axisIndex/axisId references an existing axis","Remove stale axisIndex references when axes are removed"],"exampleFix":"// before (modular)\nimport * as echarts from 'echarts/core';\nimport { LineChart } from 'echarts/charts';\necharts.use([LineChart]); // no axis components -> yAxis '0' not found\n\n// after\nimport { GridComponent } from 'echarts/components';\necharts.use([LineChart, GridComponent]);","handlingStrategy":"validation","validationCode":"const xAxes = Array.isArray(option.xAxis) ? option.xAxis : (option.xAxis ? [option.xAxis] : []);\nconst yAxes = Array.isArray(option.yAxis) ? option.yAxis : (option.yAxis ? [option.yAxis] : []);\n(option.series || []).forEach((s: any) => {\n  const xi = s.xAxisIndex ?? 0;\n  const yi = s.yAxisIndex ?? 0;\n  if (xi >= xAxes.length) console.error('xAxisIndex ' + xi + ' not found');\n  if (yi >= yAxes.length) console.error('yAxisIndex ' + yi + ' not found');\n});\n// also register GridComponent (xAxis/yAxis) on modular builds","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Register axis components (GridComponent) on modular builds","Validate axisIndex/axisId reference an existing axis before setOption","Remove stale axisIndex references when axes are removed"],"tags":["axis","cartesian","modular-build","dev-only"],"backgroundTag":null,"analyzedSha":"30076aedcd7b7f65d8dd8e8d9ece46ce778133a3","analyzedAt":"2026-08-12T12:42:28.134Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}