{"record":{"id":"fdf71b9471c73b09","repo":"ueberdosis/tiptap","slug":"tiptap-error-extension-name-uses-the-chan","errorCode":null,"errorMessage":"[tiptap error]: Extension \"${name}\" uses the \"changedRanges\" decoration update strategy but does not provide createInRange().","messagePattern":"\\[tiptap error\\]: Extension \"(.+?)\" uses the \"changedRanges\" decoration update strategy but does not provide createInRange\\(\\)\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/core/src/decorations/helpers/validateDecorationSpec.ts","lineNumber":22,"sourceCode":" * Validates a decoration spec to ensure it follows the correct pattern for its update strategy.\n * @param name The name of the extension.\n * @param spec The decoration spec to validate\n */\nexport function validateDecorationSpec(name: string, spec: DecorationSpec): void {\n  const strategy = (spec as DecorationSpec & { update?: unknown }).update ?? 'document'\n\n  switch (strategy) {\n    case 'document':\n      if (spec.createInRange) {\n        throw new Error(\n          `[tiptap error]: Extension \"${name}\" provides createInRange() but does not use the ` +\n            '\"changedRanges\" decoration update strategy.',\n        )\n      }\n      return\n    case 'changedRanges':\n      if (!spec.createInRange) {\n        throw new Error(\n          `[tiptap error]: Extension \"${name}\" uses the \"changedRanges\" decoration update ` +\n            'strategy but does not provide createInRange().',\n        )\n      }\n      return\n    case 'manual':\n      if (spec.createInRange) {\n        throw new Error(\n          `[tiptap error]: Extension \"${name}\" uses the \"manual\" decoration update strategy, ` +\n            'which is not compatible with createInRange(). createInRange() requires the ' +\n            '\"changedRanges\" strategy.',\n        )\n      }\n      if (spec.shouldUpdate) {\n        throw new Error(\n          `[tiptap error]: Extension \"${name}\" cannot combine the \"manual\" decoration update ` +\n            'strategy with shouldUpdate().',\n        )","sourceCodeStart":4,"sourceCodeEnd":40,"githubUrl":"https://github.com/ueberdosis/tiptap/blob/496d53afd7e4e3c7424b4749adeff4f45e27ddb0/packages/core/src/decorations/helpers/validateDecorationSpec.ts#L4-L40","documentation":"Error \"[tiptap error]: Extension \"${name}\" uses the \"changedRanges\" decoration update strategy but does not provide createInRange().\" thrown in ueberdosis/tiptap.","triggerScenarios":"Thrown at packages/core/src/decorations/helpers/validateDecorationSpec.ts:22 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"496d53afd7e4e3c7424b4749adeff4f45e27ddb0","analyzedAt":"2026-08-26T22:41:43.400Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}