Azure / azure-functions-host

The host/runtime that powers Azure Functions
https://functions.azure.com
MIT License
1.92k stars 441 forks source link

Can't create EventGrid V3 function from the portal after switch to ~3 Preview #5329

Open alrod opened 4 years ago

alrod commented 4 years ago
  1. Create a function app.
  2. Switch Runtime version to "3 Preview".
  3. Create an EventGrid function:

Request URL: https://management.azure.com/subscriptions/xxx/resourceGroups/alrod-v3/providers/Microsoft.Web/sites/alrod-v3-JS/functions/EventGridTrigger1?api-version=2018-11-01 Request Method: PUT Status Code: 400

{"Code":"BadRequest","Message":"Encountered an error (InternalServerError) from host runtime.","Target":null,"Details":[{"Message":"Encountered an error (InternalServerError) from host runtime."},{"Code":"BadRequest"},{"ErrorEntity":{"Code":"BadRequest","Message":"Encountered an error (InternalServerError) from host runtime."}}],"Innererror":null}

  1. Click on create button second time and the function is created.

Host stacktrace:

System.InvalidOperationException : Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   at System.Linq.ImmutableArrayExtensions.First[T](ImmutableArray`1 immutableArray,Func`2 predicate)
   at async Microsoft.Azure.WebJobs.Script.WebHost.Management.WebFunctionsManager.TryGetFunction(String name,HttpRequest request) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Management\WebFunctionsManager.cs : 167
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.Management.WebFunctionsManager.CreateOrUpdate(String name,FunctionMetadataResponse functionMetadata,HttpRequest request) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Management\WebFunctionsManager.cs : 153
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.Controllers.FunctionsController.CreateOrUpdate(String name,FunctionMetadataResponse functionMetadata) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Controllers\FunctionsController.cs : 75
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper,ObjectMethodExecutor executor,Object controller,Object[] arguments)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at async Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(??)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(??)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next,Scope& scope,Object& state,Boolean& isCompleted)
   at async Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(??)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(??)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next,Scope& scope,Object& state,Boolean& isCompleted)
   at async Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(??)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(??)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.Middleware.FunctionInvocationMiddleware.Invoke(HttpContext context) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\FunctionInvocationMiddleware.cs : 52
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.Middleware.DefaultMiddlewarePipeline.<>c.<BuildPipeline>b__7_0(??) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\JobHostMiddleware\DefaultMiddlewarePipeline.cs : 31
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.Middleware.HstsConfigurationMiddleware.<>c.<-ctor>b__1_0(??) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\HstsConfigurationMiddleware.cs : 24
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.Middleware.HstsConfigurationMiddleware.Invoke(HttpContext context,RequestDelegate next) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\HstsConfigurationMiddleware.cs : 42
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.Middleware.DefaultMiddlewarePipeline.<>c__DisplayClass8_1.<GetMiddlewareDelegate>b__1(??) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\JobHostMiddleware\DefaultMiddlewarePipeline.cs : 45
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.Middleware.CustomHttpHeadersMiddleware.Invoke(HttpContext context,RequestDelegate next) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\CustomHttpHeadersMiddleware.cs : 34
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.Middleware.DefaultMiddlewarePipeline.<>c__DisplayClass8_1.<GetMiddlewareDelegate>b__1(??) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\JobHostMiddleware\DefaultMiddlewarePipeline.cs : 45
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.Middleware.JobHostPipelineMiddleware.Invoke(HttpContext httpContext,IJobHostMiddlewarePipeline middleware) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\JobHostPipelineMiddleware.cs : 26
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.Middleware.ResponseContextItemsCheckMiddleware.Invoke(HttpContext context) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\ResponseContextItemsCheckMiddleware.cs : 29
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.Middleware.HomepageMiddleware.Invoke(HttpContext context) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\HomepageMiddleware.cs : 34
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.Middleware.ExceptionMiddleware.Invoke(HttpContext context) at C:\azure-functions-host\src\WebJobs.Script.WebHost\Middleware\ExceptionMiddleware.cs : 28
brettsam commented 4 years ago

@alrod was this with a private site extension or with prod bits? At what point did this blow up?

brettsam commented 4 years ago

It certainly looks like we're using FirstOrDefault() there... yet it's throwing as if we're not.

var functionMetadata = _functionMetadataProvider.GetFunctionMetadata(true)
    .FirstOrDefault(metadata => Utility.FunctionNamesMatch(metadata.Name, name));