Microsoft Fabric Updates Blog

Decoupling Default Semantic Models for Existing Items in Microsoft Fabric

In our earlier announcement, we shared that newly created data warehouses, lakehouses and other items in Microsoft Fabric would no longer automatically generate default semantic models. This change allows customers to have more control over their modeling experience and to explicitly choose when and how to create semantic models.

Starting end of October 2025, Microsoft began decoupling Power BI default semantic models to regular semantic models. The rollout will occur gradually across regions and should be completed by the end of November 2025.

What’s Changing

  • Default semantic models that were automatically associated with existing warehouses and lake houses are now decoupled.
  • These models continue to exist in your workspace as independent semantic model items.
  • This means you can retain them if you still use them for reports or dashboards or delete them safely if they are no longer needed.

Identify and Delete decoupled Semantic Models

The script below demonstrates how to use the Fabric API to retrieve all decoupled default semantic models in a workspace and delete the ones that are empty.

You’ll need:

A valid Fabric access token – You can get a valid token from the developer tools in the browser, or you can setup authentication and authorization in your scripts.

The workspace ID

import requests

workspace_id = ""
migratedsemanticmodels_url = f"https://api.fabric.microsoft.com/v1.0/myorg/groups/{workspace_id}/datawarehouses/migratedSemanticModels"

payload = ""
headers = {
    "User-Agent": "delete-default-semantic-models-script/1.0",
    "Authorization": "Bearer {token}"
}

response = requests.request("GET", migratedsemanticmodels_url, headers=headers)
response.raise_for_status()

models = response.json().get("value", [])
print(f"Found {len(models)} semantic models.")

for model in models:
    model_id = model.get("modelObjectId")
    is_empty = model.get("isEmpty")
    delete_url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/semanticModels/{model_id}"
    if is_empty:
        print(f"Would delete (empty): ({model_id}) - URL: {delete_url}")
        delete_response = requests.delete(delete_url, headers=headers)
        if delete_response.status_code == 200:
            print(f"Deleted: ({model_id})")
        elif delete_response.status_code == 404:
            print(f"Not found or already deleted: ({model_id})")
        else:
            print(f"Failed to delete ({model_id}): {delete_response.status_code}")
    else:
        print(f"Skipping non-empty model: ({model_id})")

How it Works

  • Retrieves decoupled default semantic models for a given workspace.
  • Checks whether each model is empty.
  • Deletes empty models while skipping those that contain objects.

API References – Items – Delete Semantic Model – REST API (Semantic Model)

Known Limitations

  • Default Semantic Models in Import Mode – if a default semantic model is in import mode, the user will need to manually configure credentials for decoupled semantic model. This should be rare, as most default semantic models have been migrated to Direct Lake or Direct Query. Please refer to following guidelines.
  • Default Semantic Models with Reports in Deployment Pipelines – When decoupling occurs for artifacts in a deployment pipeline, there will be no relationship between the decoupled models in the source and target workspaces. The fix is to deploy the source semantic model to the target workspace and rebind all reports to that semantic model.
    • Rename the decoupled semantic model in the target workspace.
    • Deploy the decoupled semantic model from the source workspace to the target workspace.
    • Rebind any reports referencing the renamed semantic model in the target workspace. Follow https://learn.microsoft.com/en-us/rest/api/power-bi/reports/rebind-report-in-group to rebind to the newly deployed semantic model.
    • Validate report is working as expected.
    • Delete the renamed semantic model in the target workspace.
  • When the hidden staging warehouses/lake houses are decoupled, they will become visible to users as standalone semantic models. This behavior is expected. Users can safely delete these semantic models as they are no longer needed.

Summary

The decoupling of default semantic models marks another step toward a more modular and transparent data modeling experience in Microsoft Fabric. By providing explicit control over semantic model lifecycle, you can now better manage, optimize, or remove unused models — keeping your workspace clean, consistent, and efficient.

Related blog posts

Decoupling Default Semantic Models for Existing Items in Microsoft Fabric

November 24, 2025 by Jianlei Shen

This milestone marks a major step forward in unifying and simplifying data movement experiences across Data Factory. With Copy Job Activity, users can now enjoy the simplicity and speed of Copy Job while leveraging the orchestration power and flexibility of Data Factory pipelines. What is the Copy job Activity  Copy Job Activity allows you to … Continue reading “Announcing Copy Job Activity in Data Factory Pipeline (Generally Available)”

November 21, 2025 by Penny Zhou

Troubleshooting pipeline failures can be overwhelming, especially when a single run throws dozens or even hundreds of errors. The new Error Insights Copilot in Fabric makes this process faster, smarter, and easier. Powered by AI, Copilot provides clear explanations, root cause analysis, and actionable recommendations, so you can resolve issues without getting lost in technical … Continue reading “AI-powered troubleshooting for Fabric pipeline error messages”