Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unintuitive error message when UseDevelopmentStorage=true and Storage Emulator isn't running #238

Closed
arerlend opened this issue Apr 10, 2018 · 2 comments
Assignees

Comments

@arerlend
Copy link

@cgillum follow-up on comment on #72

The error message below is a bit unintuitive, especially "The function 'E1_HelloSequence' doesn't exist... The following are the active orchestrator functions: ." in particular. Just a nonessential QoL fix for DF newcomers that might prevent some frayed nerves.

{
    "id": "...",
    "requestId": "...",
    "statusCode": 500,
    "errorCode": 0,
    "message": "Exception while executing function: HttpStart -> The function 'E1_HelloSequence' doesn't exist, is disabled, or is not an orchestrator function. The following are the active orchestrator functions: .",
    "errorDetails": "Microsoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while executing function: HttpStart ---> System.ArgumentException : The function 'E1_HelloSequence' doesn't exist, is disabled, or is not an orchestrator function. The following are the active orchestrator functions: .\r\n   at Microsoft.Azure.WebJobs.Extensions.DurableTask.DurableTaskExtension.AssertOrchestratorExists(String name,String version)\r\n   at async Microsoft.Azure.WebJobs.DurableOrchestrationClient.StartNewAsync(??)\r\n   at CallSite.Target(Closure ,CallSite ,Object )\r\n   at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site,T0 arg0)\r\n   at async VSSample.HttpStart.Run(HttpRequestMessage req,DurableOrchestrationClient starter,String functionName,TraceWriter log)\r\n   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.InvokeAsync[TReflected,TReturnValue](Object instance,Object[] arguments)\r\n   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,Boolean throwOnTimeout,TimeSpan timerInterval,IFunctionInstance instance)\r\n   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithWatchersAsync(IFunctionInstance instance,ParameterHelper parameterHelper,TraceWriter traceWriter,CancellationTokenSource functionCancellationTokenSource)\r\n   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??)\r\n   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??) \r\n   End of inner exception\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??)\r\n   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.TryExecuteAsync(IFunctionInstance functionInstance,CancellationToken cancellationToken)\r\n   at Microsoft.Azure.WebJobs.Host.Executors.ExceptionDispatchInfoDelayedException.Throw()\r\n   at async Microsoft.Azure.WebJobs.JobHost.CallAsync(??)\r\n   at async Microsoft.Azure.WebJobs.Script.ScriptHost.CallAsync(String method,Dictionary`2 arguments,CancellationToken cancellationToken)\r\n   at async Microsoft.Azure.WebJobs.Script.WebHost.WebScriptHostManager.HandleRequestAsync(FunctionDescriptor function,HttpRequestMessage request,CancellationToken cancellationToken)\r\n   at async Microsoft.Azure.WebJobs.Script.Host.FunctionRequestInvoker.ProcessRequestAsync(HttpRequestMessage request,CancellationToken cancellationToken,WebScriptHostManager scriptHostManager,WebHookReceiverManager webHookReceiverManager)\r\n   at async Microsoft.Azure.WebJobs.Script.WebHost.Controllers.FunctionsController.<>c__DisplayClass3_0.<ExecuteAsync>b__0(??)\r\n   at async Microsoft.Azure.WebJobs.Extensions.Http.HttpRequestManager.ProcessRequestAsync(HttpRequestMessage request,Func`3 processRequestHandler,CancellationToken cancellationToken)\r\n   at async Microsoft.Azure.WebJobs.Script.WebHost.Controllers.FunctionsController.ExecuteAsync(HttpControllerContext controllerContext,CancellationToken cancellationToken)\r\n   at async System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)\r\n   at async System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)\r\n   at async Microsoft.Azure.WebJobs.Script.WebHost.Handlers.WebScriptHostHandler.SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)\r\n   at async Microsoft.Azure.WebJobs.Script.WebHost.Handlers.SystemTraceHandler.SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)\r\n   at async System.Web.Http.HttpServer.SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)"
}
@cgillum cgillum added Enhancement Feature requests. help wanted and removed Enhancement Feature requests. help wanted labels Apr 10, 2018
@cgillum
Copy link
Collaborator

cgillum commented Apr 10, 2018

Sorry for the confusion - I understand this can be confusing and frustrating when you're first trying to use the extension. When the fix for #205 is released later this week, it will also improve the error message experience here. Basically, instead of getting a "the function XXX doesn't exist", you should get a proper storage exception. I'll leave this bug open to remind myself to validate this.

@cgillum cgillum self-assigned this Apr 10, 2018
@cgillum cgillum added this to the Release Candidate (RC) milestone Apr 10, 2018
@cgillum
Copy link
Collaborator

cgillum commented Apr 12, 2018

It looks like the latest version of the Functions CLI + Visual Studio integration automatically starts up the Storage Emulator if it's not already running. I was unable to reproduce this issue, and apparently that is why. That should take care of this issue. Even if it doesn't, the next release will give you a more useful exception message.

@cgillum cgillum closed this as completed Apr 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants