{"record":{"id":"e69fc0a3ad5cbf5c","repo":"puppetlabs/puppet","slug":"function-name-the-parser-did-not-produce-an","errorCode":null,"errorMessage":"%{function_name}(): the parser did not produce an EppExpression, got '%{class_name}'","messagePattern":"%(.+?)\\(\\): the parser did not produce an EppExpression, got '%(.+?)'","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/puppet/pops/evaluator/epp_evaluator.rb","lineNumber":68,"sourceCode":"      raise ArgumentError, _(\"epp(): Invalid EPP: %{detail}\") % { detail: e.message }\n    end\n\n    # Evaluate (and check template_args)\n    evaluate(parser, 'epp', scope, true, result, template_args)\n  end\n\n  def self.evaluate(parser, func_name, scope, use_global_scope_only, parse_result, template_args)\n    template_args, template_args_set = handle_template_args(func_name, template_args)\n\n    body = parse_result.body\n    unless body.is_a?(Puppet::Pops::Model::LambdaExpression)\n      # TRANSLATORS 'LambdaExpression' is a class name and should not be translated\n      raise ArgumentError, _(\"%{function_name}(): the parser did not produce a LambdaExpression, got '%{class_name}'\") %\n                           { function_name: func_name, class_name: body.class }\n    end\n    unless body.body.is_a?(Puppet::Pops::Model::EppExpression)\n      # TRANSLATORS 'EppExpression' is a class name and should not be translated\n      raise ArgumentError, _(\"%{function_name}(): the parser did not produce an EppExpression, got '%{class_name}'\") %\n                           { function_name: func_name, class_name: body.body.class }\n    end\n    unless parse_result.definitions.empty?\n      # TRANSLATORS 'EPP' refers to 'Embedded Puppet (EPP) template'\n      raise ArgumentError, _(\"%{function_name}(): The EPP template contains illegal expressions (definitions)\") %\n                           { function_name: func_name }\n    end\n\n    parameters_specified = body.body.parameters_specified\n    if parameters_specified || template_args_set\n      enforce_parameters = parameters_specified\n    else\n      enforce_parameters = true\n    end\n\n    # filter out all qualified names and set them in qualified_variables\n    # only pass unqualified (filtered) variable names to the template\n    filtered_args = {}","sourceCodeStart":50,"sourceCodeEnd":86,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/pops/evaluator/epp_evaluator.rb#L50-L86","documentation":"Error \"%{function_name}(): the parser did not produce an EppExpression, got '%{class_name}'\" thrown in puppetlabs/puppet.","triggerScenarios":"Thrown at lib/puppet/pops/evaluator/epp_evaluator.rb:68 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":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}