Azure / Azure/azure-functions-host

Error handling for "Could not find file 'C:\home\site\wwwroot'" on host startup

Open
#9,336 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C#
Stars
2k
Forks
482
Avg merge
2d 12h
Merged PRs (30d)
38

Description

For host startup failures like "System.IO.FileNotFoundException : Could not find file 'C:\home\site\wwwroot'." it may be better to immediately exit the process instead of continuously retrying as invocations are sometimes routed to the role instance causing further issues.

Stack trace:

```
System.IO.FileNotFoundException : Could not find file 'C:\home\site\wwwroot'.
at System.IO.__Error.WinIOError(Int32 errorCode,String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath,String path,Object dirSecurityObj,Boolean checkHost)
at System.IO.Directory.InternalCreateDirectoryHelper(String path,Boolean checkHost)
at System.IO.Directory.CreateDirectory(String path)
at System.IO.Abstractions.DirectoryWrapper.CreateDirectory(String path)
at Microsoft.Azure.WebJobs.Script.FileUtility.EnsureDirectoryExists(String path) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Extensions\FileUtility.cs : 97
at Microsoft.Azure.WebJobs.Script.ScriptHost.InitializeFileSystem() at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHost.cs : 571
at Microsoft.Azure.WebJobs.Script.ScriptHost.PreInitialize() at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHost.cs : 551
at Microsoft.Azure.WebJobs.Script.ScriptHost.Initialize() at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHost.cs : 292
at Microsoft.Azure.WebJobs.Script.ScriptHostManager.RunAndBlock(CancellationToken cancellationToken) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHostManager.cs : 178
```

Example IcM: 397469698

Contributor guide

Open the contributing guide

Research direction

Start with ScriptHost.InitializeFileSystem in src/WebJobs.Script/Host/ScriptHost.cs and the EnsureDirectoryExists call in FileUtility.cs, then trace how ScriptHostManager.RunAndBlock handles startup failures. Confirm the retry behavior for the missing wwwroot case and define completion as exiting rather than repeatedly retrying; no test file is named in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp
Domain
backend, cloud
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.