Logic App Standard with Private Endpoints – Local Functions Not Working with Run From Package

Sumit Gaur 475 Reputation points
2026-08-08T18:53:41.8566667+00:00

Hi Team,

We are running a private Logic App Standard along with a private Storage Account. The Logic App is VNET-integrated, and all four Storage Account services have private endpoints configured. Outbound traffic from the Logic App is also configured to route through the VNET.

We are observing an issue specifically with Logic Apps that contain local functions in this configuration.

When we configure the CI/CD pipeline to use runFromPackage deployment mode and set the following application setting:

WEBSITE_RUN_FROM_PACKAGE=1

The local functions in the Logic App stop working. We have also noticed that, with this configuration, the wwwroot folder containing the Logic App code/content is not visible in the Kudu console under the site directory.

However, when we remove the WEBSITE_RUN_FROM_PACKAGE application setting and change the CI/CD deployment mode back to zipDeploy, the Logic App and its local functions start working again, and the wwwroot content is available as expected.

The same logic app works when both logic app standard and storage account has inbound access as public and running on runFromPackage mode.

Can you help in determining if we need to configure any additional private endpoints or need to add any additional app setting?

Azure Logic Apps
Azure Logic Apps

An Azure service that automates the access and use of data across clouds without writing code.


3 answers

Sort by: Newest
  1. Likhitha Sulake 100 Reputation points Microsoft External Staff Moderator
    2026-08-11T16:30:53.6633333+00:00

    Hi @Sumit Gaur ,

    Thank you for sharing the screenshots and configuration details.

    Based on the information provided so far, we understand that:

    • Private Endpoints are configured for the Blob, File, Queue, and Table services.

    DNS resolution is correctly resolving the storage endpoints to their private IP addresses.

    Network connectivity to the Storage Account is successful.

    Built-in connector workflows continue to function as expected.

    The issue appears to be isolated to Local Functions when WEBSITE_RUN_FROM_PACKAGE=1 is enabled in the private networking configuration.

    Since the storage connectivity and DNS resolution appear to be functioning correctly, we would like to focus the next stage of troubleshooting on package retrieval/mounting and Local Functions host startup.

    Could you please provide the following information from a fresh reproduction?

    Runtime/host logs captured during Logic App startup while WEBSITE_RUN_FROM_PACKAGE=1 is enabled.

    Any relevant errors reported under Diagnose and Solve Problems for the Logic App.

    Application Insights traces, if Application Insights is enabled, particularly those related to:

    Function loading

      Package mounting
      
         Host startup
         
            Storage access
            
            Confirmation of where the deployment package (`.zip`) is stored:
            
               In the same private Storage Account, or
               
                  In a different Storage Account
                  
                  The exact deployment method used by the CI/CD pipeline when Run From Package is enabled.
                  
                  Any errors or warnings visible in:
                  
                     Host Status
                     
                        Functions blade
                        
                           Kudu/Event Logs
                           
                              Deployment Center logs
                              
    

    If possible, please reproduce the issue once more with WEBSITE_RUN_FROM_PACKAGE=1 enabled and share the corresponding startup/host logs and timestamps.

    These details will help us determine whether the failure is occurring while the package is being retrieved, mounted, or loaded by the Local Functions runtime, and will allow us to narrow down the issue further.

    Was this answer helpful?

    0 comments No comments

  2. kagiyama yutaka 5,330 Reputation points
    2026-08-09T00:19:26.0666667+00:00

    I think Logic App Standard loads its workflows and local functions from the Storage content share mounted read‑write at wwwroot, and WEBSITE_RUN_FROM_PACKAGE switches the app to a read‑only ZIP so the content share isn’t used. In that state the runtime can’t load workflows or local functions and Kudu shows an empty wwwroot. Removing that setting and deploying by zip brings back the normal mount, and re‑saving App Settings with a restart helps when the mount looks empty.

    Was this answer helpful?

    0 comments No comments

  3. AI answer

    2026-08-08T18:54:00.87+00:00

    For a private Azure Logic Apps Standard deployment, the supported guidance in the available documentation is:

    1. Configure private endpoints for all four storage services: Blob, File, Queue, and Table.
    2. Configure Virtual network integration on the logic app.
    3. Route access to workflow data over the VNet by setting WEBSITE_CONTENTOVERVNET = 1.
    4. If custom DNS is used, set WEBSITE_DNS_SERVER and optionally WEBSITE_DNS_ALT_SERVER.
    5. Verify DNS resolution for the storage endpoints returns the private IP addresses.
    6. Verify connectivity from a VM in the same VNet by using nslookup and psping/tcpping.
    7. Check the logic app app settings WEBSITE_CONTENTAZUREFILECONNECTIONSTRING and WEBSITE_CONTENTSHARE for correctness.
    8. Run the built-in detectors Logic App Down or Reporting Errors and Network Troubleshooter.
    9. Ensure Allow storage account key access is enabled on the storage account.

    The available documentation does not describe any additional private endpoint specifically for local functions or any extra app setting specifically for making local functions work with WEBSITE_RUN_FROM_PACKAGE=1 in this private-endpoint scenario.

    Based on the documented configuration, the main settings to verify are:

    • WEBSITE_CONTENTOVERVNET = 1
    • WEBSITE_DNS_SERVER and WEBSITE_DNS_ALT_SERVER if custom DNS is used
    • WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
    • WEBSITE_CONTENTSHARE
    • WEBSITE_VNET_ROUTE_ALL = 1

    Also verify that:

    • all storage private DNS zones are linked correctly to the integrated VNet
    • the storage endpoints resolve to private IPs
    • port connectivity works to Blob/Queue/Table on 443 and File on 445
    • the storage account still allows key-based access

    The behavior described for wwwroot not appearing in Kudu when run from package is enabled is not covered in the provided documentation, and no documented extra private endpoint is listed for that case.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.