Skip to main content
Microsoft Fabric

Common Microsoft Fabric Implementation Mistakes (and How to Avoid Them)

Nobody notices a Fabric implementation going wrong in week two — the capacity is provisioned, the first report looks better than the thing it replaced. It surfaces in month four, when two people quote different revenue in a management meeting. Twelve mistakes, and the week-two decision behind each.

Amit Kumar Singh - Technology Consulting Partner at MyData Insights

Technology Consulting Partner · MyData Insights

14+ years in industrial data · Former Accenture & EY · India, GCC, SEA

20 August 2026 · 13 min read

The bottom line

Microsoft Fabric implementations rarely fail on technology; they fail on decisions not taken in week two that surface as operational symptoms in month four. The recurring mistakes: treating Fabric as a Power BI licence upgrade, starting with the platform not a decision, copying the warehouse schema unchanged, no workspace and domain topology, a Gold table per report, no signed metric definitions, building in the service with no source control, no dev/production separation, Direct Lake designed without checking guardrails, capacity monitoring that starts at the first throttling incident, no source-of-truth decision, and master data treated as a one-off task. Each correction is cheap in week two and expensive in month six.

Nobody notices it going wrong in week two

The capacity is provisioned, the first lakehouse exists, a pipeline lands sales orders, and the first report looks better than the thing it replaced. It surfaces in month four: two people quote different revenue numbers in a management meeting; a report that was fast in the demo crawls at full data volume; nobody can name what is being done differently.

None of those are technology failures. They are decisions not taken in week two, surfacing as operational symptoms in month four. This is what goes wrong inside an implementation, and the week-two decision that prevents each.

The most common mistakes, mapped to the symptom you notice first

MistakeSymptom the business notices firstWhen it bites
Fabric bought as a Power BI licence change"Same reports, just more expensive"Month 2, first invoice review
Started with the platform, not a decisionNobody can name what is done differentlyMonth 3, first steering committee
Warehouse schema lifted unchangedPerformance no better than the old stackMonth 3, first user complaint
No workspace and domain topology"Who owns this workspace?" with no answerMonth 4, first Audit access request
One Gold table per reportTwo dashboards show different revenueMonth 4, first board pack
No metric definitions agreedArgument about the number, not the decisionMonth 1 and every month after
Built in the service, no source controlA bad change cannot be reversedWeek 6, first Friday incident
No dev/production separationA schema change breaks a live report in hoursMonth 2, mid-morning
Direct Lake without checking guardrailsFast in the demo, slow in productionMonth 5, first full data volume
Capacity monitoring only after throttlingReports load slowly, then stopMonth 4, month-end close
No source-of-truth decisionLegacy report live, two numbers circulateMonth 6, finance refuses to sign
Master data as a project taskSame supplier three times in a spend reportMonth 5, first procurement review

The framing mistakes: buying a platform instead of changing a decision

Swapping the licence and keeping the model looks efficient — Power BI Premium becomes a Fabric F SKU, the workspaces move across, the semantic models come unchanged. It bites at the first invoice review, and again on licences: below F64, every consuming user still needs a Pro or PPU licence to view content. The correction: name one thing the estate can do after the move that it could not before — same-day OTIF by customer, scrap by shift within the hour. If you cannot name it, you are buying compute, not capability.

Starting with the platform, not the decision, is subtler and more expensive. Chartering the programme as "implement Microsoft Fabric" gives it no acceptance criterion, so it runs until the budget does. The correction: scope the first slice around a decision with a named owner, a cadence and a current failure mode — "the weekly S&OP meeting spends 40 minutes reconciling two demand numbers before it discusses anything" is a scope.

The modelling mistakes: schema, Gold sprawl and undefined metrics

Copying the schema into the lakehouse: the SAP extract has 400 tables, so the lakehouse now has 400 Delta tables with the same names. Landing raw is correct for Bronze; carrying it into Silver and Gold is not — Microsoft's guidance favours star schemas, because snowflaked designs load more tables and traverse longer filter-propagation chains. The correction: scope Silver and Gold by artefact count (conformed dimensions and fact tables), not by source-table count.

A Gold table per report starts as helpfulness — a regional manager wants a slightly different view, so an analyst builds gold_sales_emea_v2 — and bites at the first board pack where two slides disagree. The correction: make Gold a governed layer with a named owner, where any new Gold table requires a rejected extension of an existing one; report-specific shaping belongs in the semantic model. And skipping metric definitions is the one that determines trust: if OTIF means requested date to three departments and confirmed date to a fourth, the platform faithfully produces four correct answers to four different questions. The correction: write the definitions before the pipelines — for each top-ten metric, numerator, denominator, exclusions, grain, owner and the date agreed.

A platform will faithfully produce a different correct answer for every definition of OTIF in use. Write the definitions before the pipelines, or the meeting discusses the number instead of the operation.

The topology mistakes: workspaces, environments and source control

No workspace and domain design: workspace creation can be open to the whole organisation, so by month four there are forty workspaces, a third abandoned. Two facts shape the design — a workspace belongs to only one domain at a time, and OneLake security's table/row/column roles are overridden by workspace Admin, Member and Contributor roles, which grant write access and therefore full read. So anyone made a Contributor to be helpful has full read on the data. The correction: restrict workspace creation to named security groups on day one, design the topology by layer and function (each medallion lakehouse in its own workspace), then map domains to business areas.

No environment separation, and no way back: everything built directly in the service, in one workspace, with no development copy. Fabric supports Git integration with Azure DevOps, GitHub and GitHub Enterprise at workspace level — but unsupported items in a connected workspace are not synced, so check your item types. The correction: connect Git before the second pipeline is built, not after the first Friday-afternoon incident, and stand up development, test and production workspaces at the start — three workspaces cost nothing to create and are painful to introduce once reports have live consumers.

The runtime mistakes: Direct Lake guardrails and capacity blindness

Direct Lake designed without checking the conditions: the demo runs on six months of data and is fast; production runs on four years and is not. The unsupported list catches mature Power BI estates every time — calculated columns and tables that reference Direct Lake tables, user-defined hierarchies and aggregations, binary and GUID types. Direct Lake on SQL falls back to DirectQuery on SQL views and SQL-based access control; Direct Lake on OneLake fails rather than falls back once a guardrail is crossed. The correction: before signature, count the semantic models containing calculated columns, calculated tables, user-defined hierarchies or aggregations — that count is the rework estimate.

Capacity monitoring that starts at the first throttling incident: Fabric smooths (interactive over a minimum of five minutes, background over 24 hours), then throttles in stages, so reports get slower, then some fail, then everything fails — usually at month-end when load peaks. The correction: name a capacity owner with a weekly review before go-live, and set surge-protection thresholds so background rejection triggers before deep throttling and workspace-level CU ceilings so one workspace cannot monopolise the capacity.

The ownership mistakes: source of truth and master data

The source-of-truth mistake is not technical: nobody switches off the old report because nobody has authority to tell finance to stop using it, so two numbers circulate indefinitely. The correction: make decommissioning a dated deliverable with an evidence test — typically one reconciled monthly close — and a named person who signs it off. Without that signature the migration has not finished, whatever the burndown chart says.

Master data has the same shape: the cleanse happens once during the build, three spellings of one supplier are merged, everyone moves on, and within a quarter there are three again because nothing changed at the point of entry. The correction: name an owner per domain — supplier, customer, material, plant — with a monthly duplicate report and authority to merge. It is an operating routine, not a project task.

Where this breaks, and what it does not fix

Avoiding every mistake here does not make the programme succeed — these are failure modes, not a method. Several corrections are only cheap before you need them: workspace topology, Git and environment separation cost days at the start and weeks in month six, because moving items between workspaces breaks downstream references. Metric definitions cannot be settled by the data team — if the Commercial Director and the CFO genuinely disagree about what a sale is, no workshop resolves it.

Direct Lake guardrails move — row and memory limits are per-SKU and Microsoft revises them, so check them at design time. Capacity discipline does not fix an inefficient Silver layer — surge protection contains the symptom, not the cause. And none of this survives an absent sponsor: every correction needs someone with authority to say no — to a new Gold table, to an open workspace, to keeping the legacy report.

What to do first

Five questions to answer this week:

  • Which single operational decision will be made differently once this is live, and who makes it today? If nobody can answer, the scope is a platform, not an outcome
  • How many workspaces exist right now, and can you name an owner for each? Over about fifteen with no owner list means topology work before more build
  • Is anything connected to Git, and could you restore last Tuesday's version of your most important pipeline in ten minutes?
  • How many semantic models contain calculated columns, calculated tables, user-defined hierarchies or aggregations? That number is your Direct Lake rework estimate
  • Which three metric definitions are currently disputed between departments, and who has authority to settle each?

We run Fabric implementations on a fixed-scope basis after a short paid discovery, largely so these decisions are forced into week one where they are cheap.

Every mistake here is a decision not taken in week two, surfacing in month four. Force them early: name the decision, restrict workspace creation, connect Git, count your Direct Lake rework, and settle the disputed definitions. Book a diagnostic with Amit — no slides, no pitch deck, no obligation to proceed. Bring a mid-flight estate and we will work out which mistake is about to bite.

Free Assessment

Where does your operation sit on the data maturity curve?

8 questions. 3 minutes. You get a scored breakdown across data infrastructure, analytics readiness, and automation potential — with a specific next step for your industry.

Microsoft FabricImplementationMistakesDirect LakeGovernance

Your Data · Our Technology · Our Automation

Get practical insights every fortnight

Amit writes about Microsoft Fabric, Power BI, AI in operations, and digital transformation for manufacturing and supply chain leaders. Practitioner perspective - no fluff, no vendor spin.

No spam. Unsubscribe any time. Also on Substack.

FAQ

Common questions

What is the most common Microsoft Fabric implementation mistake?

Skipping metric definition work. The platform will faithfully produce a different correct answer for every definition of "on-time delivery" in use, so meetings discuss the number instead of the operation — and the semantic model gets rebuilt repeatedly.

Do I need to design Fabric workspaces and domains before building?

Yes. A workspace can be associated with only one domain at a time, and domain assignment does not affect item visibility or access — that still depends on workspace roles and item permissions. Retrofitting security across a sprawled estate is materially harder.

Why is my Direct Lake report slow in production but fast in the demo?

Usually because the model is falling back to DirectQuery or has crossed a guardrail. Direct Lake on SQL falls back when the source is a SQL view or the warehouse uses SQL-based granular access control; on OneLake it fails once a per-SKU guardrail is exceeded.

When does Microsoft Fabric start throttling a capacity?

After 10 minutes of accumulated overage. Between 10 and 60 minutes, interactive jobs are delayed by 20 seconds at submission; past 60 minutes interactive operations are rejected while background jobs continue.

Should Microsoft Fabric development happen in the service or in Git?

In Git, connected at workspace level to Azure DevOps, GitHub or GitHub Enterprise, with separate development, test and production workspaces promoted through a deployment pipeline. Check which item types are supported first — unsupported items in a connected workspace are not synced.

How do I stop Gold tables multiplying in a Fabric lakehouse?

Make Gold a governed layer with a named owner, and require that any new Gold table is justified by a rejected extension of an existing one. Report-specific shaping belongs in the semantic model, not in a new Delta table.

Is this the challenge you're facing?

Book a 30-minute call. We'll look at your specific operation and tell you what's achievable - plainly and without slides.