Linux App Service Plan: ZIP Deployment with Run-From-Package Shows “0 Functions Found”

Nedyah 20 Reputation points
2025-11-19T20:06:33.5433333+00:00

Hello,

I am experiencing an issue deploying Azure Functions on a Linux App Service Plan using ZIP deployment with WEBSITE_RUN_FROM_PACKAGE = 1. Even with a minimal, valid function ZIP, the Functions host reports zero functions found.

Details:

  • Function App OS / Plan: Linux, App Service Plan

Runtime: Node.js (JS function)

Extension Version: ~4

Deployment method: ZIP deployment (manual via portal / Azure CLI)

SCM_DO_BUILD_DURING_DEPLOYMENT: false (no remote build)

ZIP structure:

host.json
TestFunction/
   function.json
   index.js

Logs: Host logs show:

Loading functions metadata
Reading functions metadata (Custom)
0 functions found (Custom)
0 functions loaded

Kudu: site/wwwroot only contains host.json, /home/data/SitePackages contains the ZIP and packagename.txt.

CLI check: az functionapp function list … returns []

Other info: Easy Auth not enabled, no custom hostnames, remote build not used.

What I have tried:

Redeploying with/without host.json in the ZIP root

Turning WEBSITE_RUN_FROM_PACKAGE on/off

Clearing site/wwwroot and redeploying

Minimal valid JS function ZIP with a single HTTP trigger

Observations:

Functions host starts but finds nothing.

  • Stopped working on my function app so I created a new function app again with linux and same settings. Still with the 0 response.
  • Seems related to Linux + App Service Plan + run-from-package.
  • I am using the new Azure App Service UI which already has a default host.json. In the old function app tried zipping with no host.json and with host.json. Again 0 response.
  • I checked in home/data/SitePackages/ the .zip files are there.

Question:

Is this a known issue or platform bug on Linux App Service Plan with ZIP deployment / run-from-package? Are there any current workarounds to get functions detected properly without switching OS or plan?

Any guidance would be appreciated.

Azure Functions
Azure Functions
An Azure service that provides an event-driven serverless compute platform.
{count} votes

3 answers

Sort by: Most helpful
  1. Pashikanti Kumar 1,725 Reputation points Microsoft External Staff Moderator
    2025-11-19T20:31:30.6+00:00

    Hi @Nedyah ,

    Thanks for the confirmation. Glad the issue is resolved.

    As discussed over chat, the issue is resolved by deploying the function with command

    YAML

    func azure functionapp publish <FunctionAppName>
    

    Solution:

    Your manual ZIP deployment on Linux App Service Plan failed because the Functions host requires a very specific package structure and metadata that manual zipping does not produce.

    The deployment worked using func azure functionapp publish <FunctionAppName> --javascript because Azure Functions Core Tools automatically:

    1. Builds your function app using Oryx (Linux requirement)
    2. Generates the correct metadata such as extensions.json, bindings info
    3. Creates the exact ZIP structure the Linux Functions runtime expects
    4. Uses the correct deployment endpoint which is different from ZIP Deploy
    5. Avoids a known Linux run-from-package bug that causes “0 functions found”

    So, function core tools command fixes everything the Linux host needs to detect functions which manual ZIP deployment did not provide.

    Hope it helps!


    Please do not forget to click "Accept the answer” and Yes, this can be beneficial to other community members.

    User's image

    If you have any other questions, let me know in the "comments" and I would be happy to help you.

    0 comments No comments

  2. Nedyah 20 Reputation points
    2025-11-24T21:24:21.6+00:00

    Thank you for the guidance. After testing, I found that explicitly specifying the language during publish resolved the issue:

    func azure functionapp publish <FunctionAppName> --javascript
    

    It appears that the Function App suddenly stopped recognizing the functions because the runtime was not explicitly declared. Likely, a recent platform update made the Linux host stricter about detecting the project language.

    With --javascript the CLI correctly uploads the files and regenerates the function index, and all functions now appear as expected.

    This explains why ZIP deploys previously worked but suddenly showed “0 functions found” without any other changes to the app.

    0 comments No comments

  3. Pravallika KV 3,870 Reputation points Microsoft External Staff Moderator
    2025-11-25T04:11:08.71+00:00

    Hi @Nedyah ,

    Thanks for the confirmation. Glad the issue is resolved.

    As discussed over chat, the issue is resolved by deploying the function with command

    func azure functionapp publish <FunctionAppName>
    

    Solution:

    Your manual ZIP deployment on Linux App Service Plan failed because the Functions host requires a very specific package structure and metadata that manual zipping does not produce.

    The deployment worked using func azure functionapp publish <FunctionAppName> --javascript because Azure Functions Core Tools automatically:

    1. Builds your function app using Oryx (Linux requirement)
    2. Generates the correct metadata such as extensions.json, bindings info
    3. Creates the exact ZIP structure the Linux Functions runtime expects
    4. Uses the correct deployment endpoint which is different from ZIP Deploy
    5. Avoids a known Linux run-from-package bug that causes “0 functions found”

    So, function core tools command fixes everything the Linux host needs to detect functions which manual ZIP deployment did not provide.

    Hope it helps!


    Please do not forget to click "Accept the answer” and Yes, this can be beneficial to other community members.

    User's image

    If you have any other questions, let me know in the "comments" and I would be happy to help you.

    0 comments No comments

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.