diff --git a/sdk-core/src/main/java/dev/restate/sdk/core/RestateEndpoint.java b/sdk-core/src/main/java/dev/restate/sdk/core/RestateEndpoint.java
index f8d37b3f3..93cb85ed9 100644
--- a/sdk-core/src/main/java/dev/restate/sdk/core/RestateEndpoint.java
+++ b/sdk-core/src/main/java/dev/restate/sdk/core/RestateEndpoint.java
@@ -223,10 +223,21 @@ private static class ServiceDefinitionFactoryDiscovery {
     private final List<ServiceDefinitionFactory> factories;
 
     private ServiceDefinitionFactoryDiscovery() {
-      this.factories =
-          ServiceLoader.load(ServiceDefinitionFactory.class).stream()
-              .map(ServiceLoader.Provider::get)
-              .collect(Collectors.toList());
+      this.factories = new ArrayList<>();
+
+      var serviceLoaderIterator = ServiceLoader.load(ServiceDefinitionFactory.class).iterator();
+      while (serviceLoaderIterator.hasNext()) {
+        try {
+          this.factories.add(serviceLoaderIterator.next());
+        } catch (ServiceConfigurationError | Exception e) {
+          LOG.debug(
+              "Found service that cannot be loaded using service provider. "
+                  + "You can ignore this message during development.\n"
+                  + "This might be the result of using a compiler with incremental builds (e.g. IntelliJ IDEA) "
+                  + "that updated a dirty META-INF file after removing/renaming an annotated service.",
+              e);
+        }
+      }
     }
 
     private @Nullable ServiceDefinitionFactory discoverFactory(Object service) {