quarkusio/quarkus · error · IOException
We didn't found any HttpFunction to run (or there is multipl
Error message
We didn't found any HttpFunction to run (or there is multiple one and none selected inside your application.properties)
What it means
QuarkusHttpFunction.service throws this when the Quarkus app started but no HttpFunction delegate was bound. The delegate is resolved at startup from CDI beans implementing HttpFunction; it is null when none exist or when multiple exist without an explicit selection.
Source
Thrown at extensions/google-cloud-functions/runtime/src/main/java/io/quarkus/gcp/functions/QuarkusHttpFunction.java:76
throw new RuntimeException(e);
}
}
}
static void clearState() {
delegate = null;
delegateClassLoader = null;
}
@Override
public void service(HttpRequest httpRequest, HttpResponse httpResponse) throws Exception {
if (!started) {
throw new IOException(deploymentStatus);
}
// maybe we can check this at static init
if (delegate == null) {
throw new IOException("We didn't found any HttpFunction to run " +
"(or there is multiple one and none selected inside your application.properties)");
}
ClassLoader currentCl = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(delegateClassLoader);
delegate.service(httpRequest, httpResponse);
} finally {
Thread.currentThread().setContextClassLoader(currentCl);
}
}
}
View on GitHub (pinned to e1c734241f)
Solutions
- Provide exactly one HttpFunction bean, or
- With multiple implementations, set quarkus.google-cloud-functions.function=<FQCN> in application.properties
- Annotate/implement the class so it is registered as an unremovable CDI bean
Example fix
# before # (two HttpFunction impls, no selection) # after quarkus.google-cloud-functions.function=com.example.MyHttpFunction
Defensive patterns
Strategy: validation
Validate before calling
long count = Arc.container().select(HttpFunction.class).count();
String selected = config.getValue("quarkus.google-cloud-functions.function", String.class);
if (count == 0 || (count > 1 && selected == null)) {
throw new IllegalStateException("HttpFunction delegate not uniquely selected");
} Try / catch
try {
function.service(request, response);
} catch (IOException e) {
if (e.getMessage().contains("didn't found any HttpFunction")) {
throw new IllegalStateException("Set quarkus.google-cloud-functions.function or keep a single HttpFunction bean");
}
throw e;
} Prevention
- One HttpFunction implementation per deployment; otherwise set the selection property
- Add a CDI test asserting the HttpFunction bean resolves
- Review the property when adding new function classes
- Watch startup logs for delegate-binding messages
When it happens
Trigger: An HTTP request hits the function while the application has zero HttpFunction beans, or has several and none was selected via the configuration property.
Common situations: Adding a second HttpFunction implementation without selecting one, deleting/renaming the implementation, or the implementing class not being a CDI-discoverable bean.
Related errors
- We didn't found any CloudEventsFunction to run (or there is
- RuntimeException(e)
- RuntimeException(e)
- IOException(deploymentStatus)
- IOException(deploymentStatus)
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/43159064269d347c.
Report an issue: GitHub.