Hi ,
Thanks for reaching out to Microsoft Q&A.
The error suggests that your orchestrator function is being treated like an HTTP-triggered function instead of a durable orchestrator function after deployment.
Why it works locally but not after publishing:
- Locally, the Durable Functions tooling may correctly associate the function with its type.
- After deployment, something in the function signature or the
function.json
metadata is likely off causing Azure to route an HTTP request to your orchestrator function, passing a string instead of an orchestration context object.
Root Cause:
Your orchestrator function is probably defined like this:
[FunctionName("UpdateCustomerDetails_Orchestrator")] public async Task RunOrchestrator( [OrchestrationTrigger] IDurableOrchestrationContext context) { ... }
the runtime may be misidentifying it due to:
- Wrong trigger attribute (missing or incorrect)
- Deployment mismatch
- Function name conflict
- Incorrect
function.json
generation - Old
bin
orobj
folders not cleaned up before publish
Possible resolution steps to try:
- Double-check your function attributes: Make sure the function is properly decorated with
[FunctionName("UpdateCustomerDetails_Orchestrator")]
and uses[OrchestrationTrigger]
. - Clean and rebuild your project before publishing, This ensures no stale metadata or DLLs get deployed.
- Remove bin/obj folders before publishing, to ensure a clean publish.
- Double-check your host.json and local.settings.json: Ensure you're using the correct extension bundles and versions.
- Verify you’re not accidentally routing HTTP calls to the orchestrator: Your HTTP trigger should start the orchestration like this:
[FunctionName("Start_UpdateCustomerDetails")] public async Task<IActionResult> StartOrchestration( [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req, [DurableClient] IDurableOrchestrationClient client) { var instanceId = await client.StartNewAsync("UpdateCustomerDetails_Orchestrator", null); return client.CreateCheckStatusResponse(req, instanceId); }
UpdateCustomerDetails_Orchestrator
directly via HTTP. - Redeploy using proper tooling (VS Publish, Azure DevOps, or
func azure functionapp publish
).
Please feel free to click the 'Upvote' (Thumbs-up) button and 'Accept as Answer'. This helps the community by allowing others with similar queries to easily find the solution.