diff --git a/src/WebJobs.Extensions.DurableTask/Bindings/EntityTriggerAttributeBindingProvider.cs b/src/WebJobs.Extensions.DurableTask/Bindings/EntityTriggerAttributeBindingProvider.cs index 91e6d6a64..3f738a03a 100644 --- a/src/WebJobs.Extensions.DurableTask/Bindings/EntityTriggerAttributeBindingProvider.cs +++ b/src/WebJobs.Extensions.DurableTask/Bindings/EntityTriggerAttributeBindingProvider.cs @@ -141,7 +141,9 @@ public Task BindAsync(object value, ValueBindingContext context) } else { - throw new ArgumentException($"Don't know how to bind to {value?.GetType().Name ?? "null"}.", nameof(value)); + throw new InvalidOperationException( + "Durable entity functions do not support direct invocation. " + + "To interact with an entity, use an HTTP trigger function or the DurableClient binding to call entity methods."); } } diff --git a/src/WebJobs.Extensions.DurableTask/Bindings/OrchestrationTriggerAttributeBindingProvider.cs b/src/WebJobs.Extensions.DurableTask/Bindings/OrchestrationTriggerAttributeBindingProvider.cs index f72bce0bf..9e0cd0991 100644 --- a/src/WebJobs.Extensions.DurableTask/Bindings/OrchestrationTriggerAttributeBindingProvider.cs +++ b/src/WebJobs.Extensions.DurableTask/Bindings/OrchestrationTriggerAttributeBindingProvider.cs @@ -191,7 +191,9 @@ public Task BindAsync(object? value, ValueBindingContext context) } else { - throw new ArgumentException($"Don't know how to bind to {value?.GetType().Name ?? "null"}.", nameof(value)); + throw new InvalidOperationException( + "Durable orchestrator functions do not support direct invocation. " + + "To start an orchestration, use an HTTP trigger function or the DurableClient binding to call 'StartNewAsync'."); } }