{"record":{"id":"144970b9063246da","repo":"PaddlePaddle/PaddleOCR","slug":"unsupported-pipeline-name-pipelinename-paddl","errorCode":null,"errorMessage":"Unsupported pipeline_name \"${pipelineName}\". PaddleOCR.js currently supports only \"${SUPPORTED_PIPELINE_NAME}\".","messagePattern":"Unsupported pipeline_name \"(.+?)\"\\. PaddleOCR\\.js currently supports only \"(.+?)\"\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"paddleocr-js/packages/core/src/pipelines/ocr/config.ts","lineNumber":138,"sourceCode":"    const asset = normalizeModelAsset(assetName, moduleConfig.model_dir);\n    validateModuleAsset(modulePath, getModuleModelName(moduleConfig));\n    return asset;\n  }\n  throw new Error(\n    `${modulePath}.model_dir must be null or an asset descriptor object in browser usage.`\n  );\n}\n\nexport function parseOcrPipelineConfigText(text: string): YamlObject {\n  return parsePipelineConfigInput(text);\n}\n\nexport function normalizeOcrPipelineConfig(input: unknown): NormalizedPipelineConfig {\n  const config = parsePipelineConfigInput(input);\n  const pipelineName = (config.pipeline_name as string | undefined) ?? SUPPORTED_PIPELINE_NAME;\n\n  if (pipelineName !== SUPPORTED_PIPELINE_NAME) {\n    throw new Error(\n      `Unsupported pipeline_name \"${pipelineName}\". PaddleOCR.js currently supports only \"${SUPPORTED_PIPELINE_NAME}\".`\n    );\n  }\n\n  const warnings: string[] = [];\n  const subModules = isPlainObject(config.SubModules) ? config.SubModules : {};\n  const textDetection = isPlainObject(subModules.TextDetection) ? subModules.TextDetection : null;\n  const textRecognition = isPlainObject(subModules.TextRecognition)\n    ? subModules.TextRecognition\n    : null;\n\n  if (!textDetection || !textRecognition) {\n    throw new Error(\n      'OCR pipeline config must define both \"SubModules.TextDetection\" and \"SubModules.TextRecognition\".'\n    );\n  }\n\n  const useDocPreprocessor = Boolean(config.use_doc_preprocessor);","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/PaddlePaddle/PaddleOCR/blob/2661c7c0ef5c613e8f93c6e93b2e052399f0f854/paddleocr-js/packages/core/src/pipelines/ocr/config.ts#L120-L156","documentation":"Thrown by normalizeOcrPipelineConfig() when pipeline_name is present but is not the single supported value (SUPPORTED_PIPELINE_NAME, \"OCR\"). This JS port implements one pipeline only; anything else — including sibling PaddleOCR pipeline names like \"PP-StructureV3\" or \"document_preprocessor\" — is rejected up front.","triggerScenarios":"Passing a config with pipeline_name: \"PP-OCRv5\" or \"PP-Structure\"; reusing a PaddleX pipeline YAML from another product; pipeline_name spelled with different casing (\"ocr\"), since the comparison is case-sensitive.","commonSituations":"Copying a Python PaddleOCR 3.x config file that names a different pipeline; assuming the JS port covers the same pipeline matrix as the Python package; casing/whitespace differences after templating.","solutions":["Set pipeline_name: OCR (exact case) in the config","Or omit pipeline_name — it defaults to the supported value","If you need a different pipeline (structure, doc preprocessing), this library cannot serve it; use the Python package or wait for support"],"exampleFix":"# before\npipeline_name: PP-StructureV3\n\n# after\npipeline_name: OCR","handlingStrategy":"validation","validationCode":"const name = (config.pipeline_name as string | undefined) ?? \"OCR\";\nif (name !== \"OCR\") {\n  throw new Error(`Only the \"OCR\" pipeline is supported; config asks for \"${name}\"`);\n}","typeGuard":"function isSupportedPipeline(name: unknown): name is \"OCR\" {\n  return name === undefined || name === \"OCR\";\n}","tryCatchPattern":null,"preventionTips":["Omit pipeline_name or set it to exactly \"OCR\"","Do not reuse pipeline YAML from other PaddleX products in this JS port","The check is case-sensitive — \"ocr\" fails"],"tags":["paddleocr","config","pipeline","validation"],"backgroundTag":null,"analyzedSha":"2661c7c0ef5c613e8f93c6e93b2e052399f0f854","analyzedAt":"2026-08-14T20:17:30.180Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}