{"record":{"id":"64ab4358b2595e99","repo":"Shopify/liquid","slug":"template-register-tag","errorCode":null,"errorMessage":"Template.register_tag","messagePattern":"Template\\.register_tag","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"lib/liquid/template.rb","lineNumber":61,"sourceCode":"      def default_exception_renderer\n        Environment.default.exception_renderer\n      end\n\n      def file_system=(file_system)\n        Deprecations.warn(\"Template.file_system=\", \"Environment#file_system=\")\n        Environment.default.file_system = file_system\n      end\n\n      def file_system\n        Environment.default.file_system\n      end\n\n      def tags\n        Environment.default.tags\n      end\n\n      def register_tag(name, klass)\n        Deprecations.warn(\"Template.register_tag\", \"Environment#register_tag\")\n        Environment.default.register_tag(name, klass)\n      end\n\n      # Pass a module with filter methods which should be available\n      # to all liquid views. Good for registering the standard library\n      def register_filter(mod)\n        Deprecations.warn(\"Template.register_filter\", \"Environment#register_filter\")\n        Environment.default.register_filter(mod)\n      end\n\n      private def default_resource_limits=(limits)\n        Deprecations.warn(\"Template.default_resource_limits=\", \"Environment#default_resource_limits=\")\n        Environment.default.default_resource_limits = limits\n      end\n\n      def default_resource_limits\n        Environment.default.default_resource_limits\n      end","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/Shopify/liquid/blob/807d45a6b3d4568e64e86b375e3702df2c7c860c/lib/liquid/template.rb#L43-L79","documentation":"Liquid::Template.register_tag is deprecated in favor of Environment#register_tag; the shim registers the tag on Environment.default and emits a deprecation warning. Tag registries became per-environment so different apps/environments can have different tag sets.","triggerScenarios":"Calling Liquid::Template.register_tag('name', TagClass) in an initializer, engine, or gem setup code.","commonSituations":"Rails engines and libraries registering custom Liquid tags at boot; apps upgraded from Liquid 4 where Template was the registry.","solutions":["Call Liquid::Environment.default.register_tag(name, klass)","Or register the tag on a custom Environment and pass that environment when parsing"],"exampleFix":"// before\nLiquid::Template.register_tag('render_snippet', SnippetTag)\n// after\nLiquid::Environment.default.register_tag('render_snippet', SnippetTag)","handlingStrategy":"validation","validationCode":"Liquid::Environment.default.register_tag(name, klass)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Register custom tags on Environment (default or per-app) instead of Template","When authoring gems, accept an Environment argument rather than mutating globals","Run test suites with deprecation warnings promoted to errors"],"tags":["ruby","liquid","deprecation","custom-tags"],"backgroundTag":"deprecated-api-usage","analyzedSha":"807d45a6b3d4568e64e86b375e3702df2c7c860c","analyzedAt":"2026-09-08T11:31:38.917Z","contentChangedAt":"2026-09-08T11:31:38.917Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}