{"record":{"id":"5b65e7e375d3ff8d","repo":"quarkusio/quarkus","slug":"there-are-no-functions-to-process-lambda","errorCode":null,"errorMessage":"There are no functions to process lambda","messagePattern":"There are no functions to process lambda","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"extensions/funqy/funqy-amazon-lambda/runtime/src/main/java/io/quarkus/funqy/lambda/FunqyLambdaBindingRecorder.java","lineNumber":95,"sourceCode":"            }\n            if (invoker.hasOutput()) {\n                JavaType javaOutputType = objectMapper.constructType(invoker.getOutputType());\n                ObjectWriter writer = objectMapper.writerFor(javaOutputType);\n                invoker.getBindingContext().put(ObjectWriter.class.getName(), writer);\n            }\n        }\n    }\n\n    public void chooseInvoker() {\n        // this is done at Runtime so that we can change it with an environment variable.\n        if (runtimeConfig.getValue().export().isPresent()) {\n            invoker = FunctionRecorder.registry.matchInvoker(runtimeConfig.getValue().export().get());\n            if (invoker == null) {\n                throw new RuntimeException(\n                        \"quarkus.funqy.export does not match a function: \" + runtimeConfig.getValue().export().get());\n            }\n        } else if (FunctionRecorder.registry.invokers().size() == 0) {\n            throw new RuntimeException(\"There are no functions to process lambda\");\n\n        } else if (FunctionRecorder.registry.invokers().size() > 1) {\n            throw new RuntimeException(\"Too many functions.  You need to set quarkus.funqy.export\");\n        } else {\n            invoker = FunctionRecorder.registry.invokers().iterator().next();\n        }\n\n        ObjectReader objectReader = null;\n        if (invoker.hasInput()) {\n            objectReader = (ObjectReader) invoker.getBindingContext().get(ObjectReader.class.getName());\n\n            if (amazonBuildTimeConfig.advancedEventHandling().enabled()) {\n                // We create a copy, because the mapper will be reconfigured for the advanced event handling,\n                // and we do not want to adjust the ObjectMapper, which is available in arc context.\n                JsonMapper jsonMapper = AmazonLambdaMapperRecorder.objectMapper;\n                JsonMapper.Builder builder = jsonMapper.rebuild();\n                reader = new AwsEventInputReader(builder, objectReader, amazonBuildTimeConfig);\n            } else {","sourceCodeStart":77,"sourceCodeEnd":113,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/funqy/funqy-amazon-lambda/runtime/src/main/java/io/quarkus/funqy/lambda/FunqyLambdaBindingRecorder.java#L77-L113","documentation":"Funqy Amazon Lambda dispatches incoming invocations to a chosen function invoker. If no quarkus.funqy.export is set and the registry contains zero functions, there is nothing to dispatch to, so this RuntimeException is thrown at runtime init.","triggerScenarios":"The Lambda runtime starts with no @Funq-annotated functions registered in FunctionRecorder.registry and no quarkus.funqy.export configured.","commonSituations":"Deployed a Lambda artifact whose code has no @Funq methods; functions in a module not included in the build; wrong artifact deployed to Lambda; dependency providing Funqy binding but no function beans.","solutions":["Add @Funq-annotated function methods to the application","Ensure the module containing the functions is included in the deployed artifact","Verify the Lambda is pointed at the correct JAR/native binary build output","If the app intentionally has no functions, remove the funqy-amazon-lambda binding dependency"],"exampleFix":"// before\nclass Functions { }\n// after\nclass Functions {\n    @Funq\n    public String hello(String name) { return \"hello \" + name; }\n}","handlingStrategy":"validation","validationCode":"long count = Arrays.stream(Functions.class.getDeclaredMethods())\n    .filter(m -> m.isAnnotationPresent(Funq.class)).count();\nif (count == 0) throw new IllegalStateException(\"No @Funq functions found; Lambda has nothing to invoke\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Ensure at least one @Funq method exists in the deployed artifact","Verify the Lambda points at the right build output","Include the module containing functions in the deployment package"],"tags":["funqy","aws-lambda","serverless","missing-function"],"backgroundTag":"function-not-found","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}