How to Troubleshoot Azure Functions Not Visible in Azure Portal
Overview
Azure Functions is a powerful serverless compute service that enables you to run event-driven code without managing infrastructure. When you deploy functions to Azure, you expect to see them listed in the Azure Portal under your Function App. However, there are situations where your functions may not appear in the portal, even though they were successfully deployed.
This issue can be frustrating, especially when your functions are actually running and processing requests correctly, but you cannot see them in the portal UI. In this blog, we will explore the common causes of functions not appearing in the Azure Portal and provide step-by-step solutions to help you troubleshoot and resolve this issue.
Understanding How Functions Appear in the Portal
Before diving into troubleshooting, it's important to understand how the Azure Portal discovers and displays your functions.
Function Visibility Process
When you open a Function App in the Azure Portal, the following process occurs:
- Host Status Check: The portal queries your Function App's host status endpoint (/admin/host/status)
- Function Enumeration: The portal requests a list of functions from the Functions runtime
- Metadata Retrieval: For each function, the portal retrieves metadata including trigger type, bindings, and configuration
- UI Rendering: The portal displays the functions in the Functions blade
If any step in this process fails, your functions may not appear in the portal.
Key Files for Function Discovery
| File | Purpose | Location |
|---|---|---|
| host.json | Host configuration | Root of function app |
| function.json | Function metadata (script languages) | Each function folder |
| *.dll or compiled code | Function implementation | bin folder or function folder |
| extensions.json | Extension bindings | bin folder |
Visibility Issue Categories
| Category | Common Causes |
|---|---|
| Deployment | Failed deployment, missing files, package issues |
| Function Configuration | Invalid function.json, binding errors, disabled |
| Host/Runtime | Host startup failure, runtime errors, worker issues |
| Storage | AzureWebJobsStorage issues, connectivity |
| Portal/Sync | Sync triggers failure, cache issues, ARM API |
| Networking | VNET, private endpoints, firewall blocking |
Common Causes and Solutions
1. Function App Host Is Not Running
Symptoms:
- No functions visible in the portal
- "Function host is not running" error message
- Host status shows "Error" or no response
Why This Happens:
The Functions host must be running for the portal to discover functions. If the host fails to start, functions won't be visible.
How to Verify:
You can check the host status using the following URL: Function API
https://<your-function-app>.azurewebsites.net/admin/host/status?code=<master-key>
Expected healthy response:
{ "state": "Running" }
Solution:
- Navigate to your Function App in the Azure Portal
- Go to Diagnose and solve problems
- Search for "Function App Down or reporting", "Function app startup issue"
- Review the diagnostics for startup errors
Common fixes:
- Check Application Settings for missing or incorrect values
- Verify AzureWebJobsStorage connection string is valid
- Ensure FUNCTIONS_EXTENSION_VERSION is set correctly (e.g., ~4)
- Check for missing extension bundles in host.json
2. Deployment Issues
Symptoms:
- Functions visible locally but not in portal after deployment
- Only some functions appear
- Old versions of functions showing
Why This Happens:
Deployment problems can result in incomplete or corrupted deployments where function files are missing or incorrectly placed.
How to Verify:
The verification method depends on your hosting plan:
For Windows plans (Consumption, Premium, Dedicated) - Use Kudu:
- Navigate to Development Tools → Advanced Tools (Kudu)
- Go to Debug console → CMD or PowerShell
- Navigate to site/wwwroot
- Verify your function folders and files exist
Kudu is not available for Linux Consumption and Flex Consumption plans. Use alternatives such as SSH or Azure CLI instead. refer Deployment technologies in Azure Functions
For compiled languages (C#, F#), verify:
site/wwwroot/
├── host.json
├── bin/
│ ├── <YourAssembly>.dll
│ └── extensions.json
└── function1/
└── function.json
Similarly for script languages (JavaScript, Python, PowerShell), verify:
Solution:
- Redeploy your function app using your preferred method:
- Visual Studio / VS Code
- Azure CLI
- GitHub Actions / Azure DevOps
- Kudu ZIP deploy
- Clear the deployment cache: Restart your function app through Portal or CLI/PowerShell
# Using Azure CLI az functionapp restart
az functionapp restart --name <app-name> --resource-group <resource-group>
3. Invalid or Missing function.json
Symptoms:
- Specific functions not appearing
- Some functions visible, others missing
- Function appears but shows wrong trigger type
Why This Happens:
Each function requires a valid function.json file (generated at build time for compiled languages, or manually created for script languages). If this file is missing, malformed, or contains errors, the function won't be discovered.
Example of Valid function.json for http trigger:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": ["get", "post"]
},
{
"type": "http",
"direction": "out",
"name": "$return"
}
]
}
Common function.json Errors:
| Error | Example | Fix |
|---|---|---|
| Missing type | {"bindings": [{"name": "req"}]} | Add "type": "httpTrigger" |
| Invalid direction | "direction": "input" | Use "in" or "out" |
| Syntax error | Missing comma or bracket | Validate JSON syntax |
| Wrong binding name | Mismatched parameter names | Match code parameter names |
Solution:
- Check the function folder in Kudu for function.json
- Validate the JSON syntax using a JSON validator
- For compiled functions, ensure your project builds successfully
- Check build output for warnings about function metadata
4. V2 Programming Model Issues (Python/Node.js)
Symptoms:
- Using Python v2 or Node.js v4 programming model
- Functions defined in code but not visible in portal
- No function.json files in function folders
Why This Happens:
The V2 programming model for Python and v4 model for Node.js define functions using decorators/code instead of function.json files. The portal requires the host to be running to discover these functions dynamically.
Python V2 Example:
import azure.functions as func
import logging
app = func.FunctionApp()
@app.function_name(name="HttpTrigger1")
@app.route(route="hello", auth_level=func.AuthLevel.FUNCTION)
def hello(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
return func.HttpResponse("Hello!")
Node.js V4 Example:
const { app } = require('@azure/functions');
app.http('HttpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'function',
handler: async (request, context) => {
context.log('HTTP trigger function processed a request.');
return { body: 'Hello!' };
}
});
Solution:
- Verify the host is running (see Solution #1)
- Check your entry point configuration.
- Check Application Insights for host startup errors related to function registration
- Check folder structure - Python folder structure
5. Extension Bundle or Dependencies Missing
Symptoms:
- Functions not appearing after adding new trigger types
- Host fails to start with extension-related errors
- Works locally but not in Azure
Why This Happens:
Azure Functions uses extension bundles to provide trigger and binding implementations. If the bundle is missing or incorrectly configured, functions using those triggers won't work.
How to Verify:
Check your host.json for extension bundle configuration: extension bundle
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Solution:
- Ensure extension bundle is configured in host.json
- Use a compatible version range:
- For Functions v4: [4.*, 5.0.0)
- For compiled C# apps using explicit extensions, ensure all NuGet packages are installed:
- Check for extension installation errors and fix it
6. Sync Trigger Issues
Symptoms:
- Functions deployed successfully
- Host is running
- Portal still shows no functions or outdated function list
Why This Happens:
The Azure Portal caches function metadata. Sometimes this cache becomes stale or the sync process between the function host and the portal fails.
Solution:
- Force a sync from the portal:
- Navigate to your Function App
- Click Refresh button in the Functions blade
- If that doesn't work, go to Overview → Restart
- Trigger a sync via REST API:
- Sync Trigger
az rest --method post --url https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Web/sites/<APP_NAME>/syncfunctiontriggers?api-version=2016-08-01
7. Storage Account Connectivity Issues
Symptoms:
- Functions not visible
- Host shows errors related to storage
- "Unable to get function keys" error
Why This Happens:
Azure Functions requires access to the storage account specified in AzureWebJobsStorage for:
- Storing function keys and secrets
- Coordinating distributed triggers
- Maintaining internal state
If the function app cannot connect to storage, the host may fail to start properly.
How to Verify:
Check the Application Settings: Storage considerations for Azure Functions
- AzureWebJobsStorage - Must be a valid connection string
- WEBSITE_CONTENTAZUREFILECONNECTIONSTRING - For Consumption/Premium plans
- WEBSITE_CONTENTSHARE - File share name
Solution:
- Verify the storage account exists and is accessible
- Check for firewall rules on the storage account:
- Go to Storage Account → Networking
- Ensure Function App has access (public endpoint or VNet integration)
- Regenerate connection strings if storage keys were rotated:
- Get new connection string from storage account
- Update AzureWebJobsStorage in Function App settings
- For VNet-integrated apps, ensure:
- Service endpoints or private endpoints are configured
- DNS resolution works for storage endpoints
Check for more details - Storage considerations for Azure Functions
8. WEBSITE_RUN_FROM_PACKAGE Issues
Symptoms:
- Functions not visible after deployment
- Functions were visible before but disappeared
- "No functions found" in the portal
- Read-only file system errors in logs
Why This Happens:
When WEBSITE_RUN_FROM_PACKAGE is configured, Azure Functions runs directly from a deployment package (ZIP file) instead of extracting files to wwwroot. If the package is inaccessible, corrupted, or misconfigured, the host cannot load your functions.
Understanding WEBSITE_RUN_FROM_PACKAGE Values:
| Value | Behavior |
|---|---|
| 1 | Indicates that the function app runs from a local package file deployed in the c:\home\data\SitePackages (Windows) or /home/data/SitePackages (Linux) folder of your function app. |
| <URL> | Sets a URL that is the remote location of the specific package file you want to run. Required for functions apps running on Linux in a Consumption plan |
| Not set | Traditional deployment (files extracted to wwwroot) |
How to Verify:
- Check the app setting value.
- If using URL, verify package accessibility.
- Check if package exists properly (when value is 1):
- Go to Kudu → Debug Console
- Navigate to d:\home\data\SitePackages
- Verify a .zip file exists and packagename.txt points to it
- Verify package contents:
- Download the package
- Extract and verify host.json and function files are present at the root level (not in a subfolder)
Common Issues:
| Issue | Symptom | Solution |
|---|---|---|
| Expired SAS token | Package URL returns 403 | Generate new SAS with longer expiry |
| Package URL not accessible | Package URL returns 404 | Verify blob exists and URL is correct |
| Wrong package structure | Files in subfolder | Ensure files are at ZIP root, not in a nested folder |
| Corrupted package | Host startup errors | Re-deploy with fresh package |
| Storage firewall blocking | Timeout errors | Allow Function App access to storage |
9. Configuration Filtering Functions
Symptoms:
- Only some functions visible
- Specific functions always missing
- Functions worked before a configuration change
Why This Happens:
Azure Functions provides configuration options to filter which functions are loaded. If these are misconfigured, functions may be excluded.
Configuration Options to Check:
- host.json functions array: Host.json -> functions
{ "functions": ["Function1", "Function2"] }
Solution:
- Remove the functions array from host.json (or ensure all desired functions are listed)
10. Networking Configuration Issues
Symptoms:
- Functions not visible in portal but app responds to requests
- "Unable to reach your function app" error in portal
- Portal timeout when loading functions
- Functions visible intermittently
- Host status endpoint not reachable from portal
Why This Happens:
When your Function App has networking restrictions configured (VNet integration, private endpoints, access restrictions), the Azure Portal may not be able to communicate with your function app to discover and display functions. The portal needs to reach your app's admin endpoints to enumerate functions.
Common Networking Configurations That Cause Issues:
| Configuration | Impact | Portal Behavior |
|---|---|---|
| Private Endpoint only (no public access) | Portal can't reach admin APIs | "Unable to reach function app" |
| Access Restrictions (IP filtering) | Portal IPs blocked | Timeout loading functions |
| VNet Integration with forced tunneling | Outbound calls fail | Host can't start properly |
| Storage account behind firewall | Host can't access keys/state | Host startup failures |
| NSG blocking outbound traffic | Can't reach Azure services | Various failures |
Important Note:
When your Function App is fully private (no public access), you won't be able to see functions in the Azure Portal from outside your network. This is expected behavior.
Using Diagnose and Solve Problems
The Azure Portal provides built-in diagnostics to help troubleshoot function visibility issues.
How to Access:
- Navigate to your Function App in the Azure Portal
- Select Diagnose and solve problems from the left menu
- Search for relevant detectors:
-
Function App Down or Reporting Errors
- SyncTrigger Issues
- Deployment
- Networking
-
Quick Troubleshooting Checklist
Use this checklist to quickly diagnose functions not appearing in the portal:
- Host Status: Is the host running? Check /admin/host/status
- Files Present: Are function files deployed? Check via Kudu
- function.json Valid: Is the JSON syntax correct?
- Run From Package: If using WEBSITE_RUN_FROM_PACKAGE, is package accessible and configured right?
- Extension Bundle: Is extensionBundle properly configured in host.json?
- Storage Connection: Is AzureWebJobsStorage valid and reachable?
- No Filters: Is functions array in host.json filtering?
- V2 Model: For Python/Node.js v2, is host running to register?
- Sync Triggered: Has the portal synced with the host?
- Networking: Can the portal reach the app? Check access restrictions/private endpoints
Verifying Functions via REST API
If you cannot see functions in the portal but believe they're deployed, you can verify directly: Functions API
List All Functions:
curl "https://<app>.azurewebsites.net/admin/functions?code=<master-key>"
Or directly from here with auth: List Functions
Check Specific Function:
curl "https://<app>.azurewebsites.net/admin/functions/<function-name>?code=<master-key>"
Get Host Status:
curl "https://<app>.azurewebsites.net/admin/host/status?code=<master-key>"
If these APIs return your functions but the portal doesn't show them, the issue is likely a portal caching/sync problem (see Solution #6).
Conclusion
Functions not appearing in the Azure Portal can be caused by various issues, from deployment problems to configuration filtering. By following the troubleshooting steps outlined in this article, you should be able to identify and resolve the issue.
Key Takeaways:
- Always verify the host is running first
- Check that function files are correctly deployed
- Validate function.json and host.json configurations
- Ensure storage connectivity is working
- Use the built-in diagnostics in the Azure Portal
- Force a sync if functions are deployed but not visible
If you continue to experience issues after following these steps, consider opening a support ticket with Microsoft Azure Support, providing:
- Function App name and resource group
- Steps to reproduce the issue
- Any error messages observed
- Recent deployment or configuration changes
References
- Azure Functions host.json reference
- Azure Functions deployment technologies
- Troubleshoot Azure Functions
- Python V2 programming model
- Node.js V4 programming model
- Azure Functions diagnostics
- Azure Functions networking options
Have questions or feedback? Leave a comment below.