quarkusio/quarkus · error · RuntimeException
There are no functions to process lambda
Error message
There are no functions to process lambda
What it means
Funqy's Google Cloud Functions binding throws RuntimeException when quarkus.funqy.export is unset and the function registry contains zero invokers, i.e. no @Funq functions were found to process requests.
Source
Thrown at extensions/funqy/funqy-google-cloud-functions/runtime/src/main/java/io/quarkus/funqy/gcp/functions/FunqyCloudFunctionsBindingRecorder.java:68
JavaType javaOutputType = objectMapper.constructType(invoker.getOutputType());
ObjectWriter writer = objectMapper.writerFor(javaOutputType);
invoker.getBindingContext().put(ObjectWriter.class.getName(), writer);
}
}
FunctionConstructor.CONTAINER = bc;
}
public void chooseInvoker() {
// this is done at Runtime so that we can change it with an environment variable.
if (config.getValue().export().isPresent()) {
invoker = FunctionRecorder.registry.matchInvoker(config.getValue().export().get());
if (invoker == null) {
throw new RuntimeException(
"quarkus.funqy.export does not match a function: " + config.getValue().export().get());
}
} else if (FunctionRecorder.registry.invokers().size() == 0) {
throw new RuntimeException("There are no functions to process lambda");
} else if (FunctionRecorder.registry.invokers().size() > 1) {
throw new RuntimeException("Too many functions. You need to set quarkus.funqy.export");
} else {
invoker = FunctionRecorder.registry.invokers().iterator().next();
}
if (invoker.hasInput()) {
reader = (ObjectReader) invoker.getBindingContext().get(ObjectReader.class.getName());
}
if (invoker.hasOutput()) {
writer = (ObjectWriter) invoker.getBindingContext().get(ObjectWriter.class.getName());
}
}
/**
* Handle RawBackgroundFunction
*
* @param eventView on GitHub (pinned to e1c734241f)
Solutions
- Add at least one class with a @Funq method plus the funqy-google-cloud-functions dependency
- Verify the function class is a discovered CDI bean in a scanned package
- Do not rely on the export setting when no functions exist
Example fix
// before: no functions in project
// after
import io.quarkus.funqy.Funq;
public class GreetingResource {
@Funq
public String greet(String name) { return "Hello " + name; }
} Defensive patterns
Strategy: validation
Validate before calling
// before deploy, confirm at least one @Funq method exists grep -rn "@Funq" src/main/java || echo "no funq functions"
Try / catch
try {
binding.init();
} catch (RuntimeException e) {
log.error("No @Funq functions registered", e);
} Prevention
- Ensure the project actually contains @Funq methods
- Verify funqy dependencies and CDI bean discovery
- Smoke-test the jar locally before GCF deploy
When it happens
Trigger: chooseInvoker runs at startup with no export configured and FunctionRecorder.registry.invokers() is empty — the application contains no @Funq methods or the beans defining them were never registered.
Common situations: Deploying a project with no funq methods; missing funqy dependency/bean discovery so functions never register; deploying an empty scaffold project by mistake.
Related errors
- quarkus.funqy.export does not match a function: ${export}
- Too many functions. You need to set quarkus.funqy.export
- No datasource named '<dataSourceName>' exists
- quarkus.funqy.export does not match a function: ${export}
- Too many functions. You need to set quarkus.funqy.export
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/8c42999e68beb4bb.
Report an issue: GitHub.