{
  "slug": "azure-functions-dotnet-8-and-9-end-of-support",
  "title": "Azure Functions: .NET 8 and .NET 9 end of support",
  "summary": "End of support date for .NET 8 and .NET 9 on Azure Functions: 10 Nov 2026. Function apps keep operating after that date but stop receiving security updates and support.",
  "cloud": "azure",
  "service": "Azure Functions",
  "service_slug": "functions",
  "category": "runtime",
  "type": "end_of_support",
  "announced_date": "2026-09-23",
  "effective_date": "2026-11-10",
  "effective_precision": "day",
  "impact": "After the end of support date, function apps on .NET 8 and .NET 9 continue to operate, but security updates are no longer provided and support for these versions on Azure Functions ends. Microsoft states that running function apps on an unsupported runtime or language version might lead to security and performance issues. Apps that use the in-process model must move to the isolated worker model before they can upgrade. Apps on a Linux Consumption plan must first upgrade to the Flex Consumption plan before upgrading to .NET 10.",
  "migration_path": "1. If the app uses the in-process model, migrate it to the isolated worker model, then upgrade to .NET 10 (step 3). See [Migrate C# Apps from In-Process to Isolated Worker Model](https://learn.microsoft.com/azure/azure-functions/migrate-dotnet-to-isolated-model?tabs=net8).\n2. If the app is on a Linux Consumption plan, upgrade to the Flex Consumption plan before upgrading to .NET 10.\n3. If the app already uses the isolated worker model, upgrade it directly to .NET 10 by following [Update Language Versions in Azure Functions](https://learn.microsoft.com/azure/azure-functions/update-language-versions?tabs=azure-portal%2Cwindows&pivots=programming-language-csharp).\n4. Complete all required upgrades and confirm the app has moved off the in-process model before 10 Nov 2026.",
  "replacement": ".NET 10",
  "affected_versions": [
    "8",
    "9"
  ],
  "source_url": "https://azure.microsoft.com/updates?id=572838",
  "extra_source_urls": [
    "https://learn.microsoft.com/azure/azure-functions/language-support-policy",
    "https://learn.microsoft.com/azure/azure-functions/migrate-dotnet-to-isolated-model?tabs=net8",
    "https://learn.microsoft.com/azure/azure-functions/update-language-versions?tabs=azure-portal%2Cwindows&pivots=programming-language-csharp",
    "https://learn.microsoft.com/en-us/azure/azure-functions/language-support-policy?pivots=programming-language-csharp",
    "https://learn.microsoft.com/en-us/azure/azure-functions/functions-versions"
  ],
  "vendor_ref": "572838",
  "last_checked_at": "2026-11-12T09:55:19.345Z",
  "created_at": "2026-11-13T13:36:44.208Z",
  "updated_at": "2026-11-13T13:36:44.208Z",
  "url": "https://eolwatch.dev/items/azure-functions-dotnet-8-and-9-end-of-support",
  "short_url": "https://eolwatch.dev/i/2n",
  "markdown_url": "https://eolwatch.dev/items/azure-functions-dotnet-8-and-9-end-of-support.md",
  "json_url": "https://eolwatch.dev/items/azure-functions-dotnet-8-and-9-end-of-support.json",
  "estate_check": {
    "resource_types": [
      "microsoft.web/sites",
      "azurerm_linux_function_app",
      "azurerm_windows_function_app"
    ],
    "fields": [
      "linuxfxversion",
      "kind",
      "site_config.application_stack.dotnet_version",
      "site_config.application_stack.use_dotnet_isolated_runtime"
    ],
    "inputs": [
      "Azure Resource Graph export (CSV or JSON)",
      "Terraform state or plan (JSON)",
      "ARM template"
    ]
  }
}
