Share via

Updating Azure Functionapp to Node 22 runtime ahead of Node 20 deprecation at the end of April

Blake Yarbrough 0 Reputation points
2026-04-04T07:41:54.98+00:00

We upgraded the app and CI pipeline to Node 22. After aligning the Azure Linux runtime, the staging slot still returned 503. Platform logs showed the container warming and reaching started state, then exiting shortly after with code 0. To rule out code and packaging issues, we created a fresh verification Function App on Node 20, deployed a freshly rebuilt local package, and observed the same host startup failure in Azure. Separately, the same codebase boots locally under Azure Functions Core Tools with a supported Node 22 runtime and successfully serves /api/ping and /api/search. Public Microsoft documentation confirms Node 22 is supported and does not identify a known-bad Node 22 image, while also advising customers not to pin specific Linux image URIs unless support provides the tag. We need Azure assistance identifying the exact host/image build and any internal platform errors or known regressions affecting this startup path.

Here are some relevant technical notes including the staging slot name and timestamp of the failing startup attempts for diagnostic and identification purposes:

  • Slot name: staging
  • Relevant failing startup window after Node 22 deployment:
    • Deployment ID b35228a-af78-4e70-833f-da8b3491a932
    • received_time: 2026-04-03T22:58:02.1599452Z
    • start_time: 2026-04-03T22:58:04.109093Z
    • end_time: 2026-04-03T22:58:08.2811706Z
  • Other nearby staging deployments during the failure period:
    • Deployment ID c4b85a88-fe99-4601-814f-d78929d64f59
    • Deployment ID abd51d98-e51c-4a28-ab17-1d3af79893c2
  • the verification app name and failing deployment timestamps:
    • Verification app: librarycontent-node20-verify-0403175717
    • First failing deployment:
      • Deployment ID b1ca472a-6293-47ef-8a16-36e045fb6e47
      • received_time: 2026-04-04T00:08:51.0407169Z
      • start_time: 2026-04-04T00:08:53.0614604Z
      • end_time: 2026-04-04T00:24:59.6684868Z
  • Redeploy of the freshly rebuilt local package that failed the same way:
  • Deployment ID ecd3b1d0-2087-4ab6-bd30-5569f8a04970
  • received_time: 2026-04-04T04:54:35.8923935Z
  • start_time: 2026-04-04T04:54:39.388055Z
  • end_time: 2026-04-04T05:19:01.9435516Z
  • the host/admin status output showing external startup class and gRPC timeout errors:
    • Verification app /admin/host/status response captured at 2026-04-04T07:21:53Z
http
HTTP/2 200
content-type: application/json; charset=utf-8
date: Sat, 04 Apr 2026 07:21:53 GMT
server: Kestrel
{"id":"librarycontent-node20-verify-040","state":"Error","version":"4.1047.100.0","versionDetails":"4.1047.100-dev.0.0+d2b723ade785c2630569ea74606a94486029c8a4","platformVersion":"107.0.7.117","instanceId":"0f4bb7e30829ace60891def67c11e049452896c1328f7e7a096766a7a287319c","computerName":"pl1sdlwk001HD5","errors":["Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. System.Private.CoreLib: One or more errors occurred. (The operation has timed out.). Microsoft.Azure.WebJobs.Script.Grpc: The operation has timed out."],"processUptime":21771933,"functionAppContentEditingState":"Unknown"}
Azure Functions
Azure Functions

An Azure service that provides an event-driven serverless compute platform.


1 answer

Sort by: Most helpful
  1. Blake Yarbrough 0 Reputation points
    2026-04-06T15:36:28.96+00:00

    Thanks for your reply Manas!

    Here are the additionally requested attributes.

    • Main function app librarycontent-dedicated-functionapp: NODE|20 , platformVersion=107.0.7.117
    • Staging slot librarycontent-dedicated-functionapp/staging: NODE|22 , platformVersion=107.0.7.117 (retrieved from Kudu in-container environment after the public /admin/host/status and slot key paths failed)
    • Verification app librarycontent-node20-verify-0403175717: NODE|22, platformVersion=107.0.7.117

    Timestamped verify-app redeploy log under Node 22

    • Verification app was switched to NODE|22
    • Same app.zip was redeployed
    • Deployment ID: 178f6f75-9201-4ff0-aa97-cfe9e7a6e0cf

    Timestamped deployment log:

    2026-04-04T07:53:24.7382174Z  Updating submodules.
    2026-04-04T07:53:27.2126158Z  Preparing deployment for commit id '178f6f75-9'.
    2026-04-04T07:53:30.2015199Z  PreDeployment: context.CleanOutputPath False
    2026-04-04T07:53:31.4375238Z  PreDeployment: context.OutputPath /home/site/wwwroot
    2026-04-04T07:53:32.6740566Z  Generating deployment script.
    2026-04-04T07:53:33.5272815Z  Running deployment command...
    2026-04-04T07:57:07.0304472Z  Running post deployment command(s)...
    2026-04-04T07:57:08.3592272Z  Triggering recycle (preview mode disabled).
    2026-04-04T07:57:11.0280471Z  Deployment successful. deployer = az_cli_functions deploymentPath = Functions App ZipDeploy. Extract zip.
    

    Plan tier and Region

    • Region: East US
    • Hosting plan: ASP-LibraryContentHandling-dedicated
    • SKU: EP1
    • Tier: ElasticPremium
    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.