Export to Azure Data Lake stops on November 30. Is your Finance and Operations close ready?
Microsoft's add-in stops on November 30, 2026, and nobody's getting more time. Your old files stay put, so reports can go stale with no error at all. We show you how to pick a replacement you won't have to replace again in 2027.
part 7 of 7 · Running enterprise platforms wellthe ideaExport stops in November, and stale reports won't warn you about it
after reading, you can- Find every report and pipeline that still depends on the Export to Data Lake add-in
- Work out which reports go to Link to Fabric, and which feeds need Synapse Link CSV
- Catch stale data and renamed columns before someone reports them in the close
Microsoft stops the Export to Azure Data LakedefinitionA large, cheap store of files in the cloud. Reporting tools read from it so they don't load the ERP's live database. add-in for good on November 30, 2026, and it won't grant extensions. If Finance and Operations data reaches your reports through that add-in, pick a replacement this week and test it before your November close.
The pipe feeding a lot of finance reports shuts off this month, and your reports won't warn you
Finance and Operations is the Microsoft ERP that runs the ledger, purchasing and stock. Many companies don't report straight out of it. They copy its tables into a data lake, a big cheap store of files in Azure, and build dashboards and warehouses on those files. Export to Azure Data Lake is the add-in that does the copying. On November 30 it stops sending new and changed rows. The files already there stay put, so the numbers on your dashboards can keep looking fine while they age.
Think of a meter reader who stops coming. Your last reading is still on the sheet and the sheet still looks official, but your bills are now guesses, and nobody rings to tell you.
- CFOs and controllers
- Finance and Operations admins
- Data and BI teams
- Anyone feeding a warehouse from F&O
- Integration owners
Why it matters: stale numbers don't throw errors
Most outages announce themselves. This one might not. Microsoft says the service won't export new or changed data after the stop and that exported files remain, so a report reading those files can go on loading old rows. Whether any given pipeline fails loudly depends on how your team built it, and that's worth finding out now.
The calendar makes it worse. November 30 is a Monday, the last day of the month, right after Thanksgiving. Microsoft gives a date, no hour. Anything still on the add-in goes into the November close with data that may stop partway through the final day, and finance is who finds out.
The add-in has been retired since November 1, 2024, so this isn't new. At least one partner was writing about a February 2025 deadline back in January 2025. The wording leaves no room now: Microsoft says no further extensions will be provided, so waiting for another reprieve is a bet against its own documentation.
-
01 Today: the add-in exports
Change data capture tracks changes, and the add-in drops them as CSV into your lake.
-
02 Pipelines read the files
Data Factory jobs, Synapse views and Power BI models pick up those files on their schedules.
-
03 November 30: export stops
No new or changed rows arrive. There's no extension to ask for.
-
04 Files stay in place
Your storage account keeps every file, so reports and jobs carry on finding something to read.
-
05 Reports drift out of date
Refreshes can keep running against rows that no longer change, unless your pipeline checks freshness.
There's more than one replacement, and one of them is already on its way out
Here's the part that's easy to miss. Microsoft's deprecation notice names Azure Synapse Link for Dataverse as the replacement. Read that alone and you'd build a Synapse workspace with a Spark pool, then write Delta files. But Microsoft's Delta Lake page now says that export option is deprecated. New customers lost it on October 15, 2026, and existing customers must move to CSV output or Link to Fabric by December 2027.
So a team rushing to Synapse Parquet this month could be migrating twice, assuming its organization is even eligible for the opt-in. Eligibility is decided per Dataverse organization ID, so a new environment won't qualify even if another one in the same tenant does. For most organizations, Microsoft now recommends Link to Fabric with low-latency sync, and keeps Synapse Link for those who must export to their own storage.
| Criteria | Link to Fabric | Synapse Link, CSV incremental | Synapse Link, Delta (Parquet) |
|---|---|---|---|
| Status | Microsoft's recommended route | Supported | Deprecated. Closed to new customers October 15, 2026; gone December 2027 |
| Where data sits | Dataverse storage, read through OneLake shortcuts | Your own storage account | Your own storage account |
| Format | Delta Parquet | CSV in time-stamped folders | Delta Parquet |
| You provide | Fabric or Power BI Premium capacity | Azure Data Lake Storage Gen2 | Storage, Synapse workspace, Spark pool |
| You pay for | Dataverse database storage and Fabric capacity | Storage and your own pipelines | Storage and Spark compute |
| Freshness Microsoft describes | Up to about an hour | As low as every 5 minutes | Set by interval; can lag on big change volumes |
| Best fit | You report in Power BI or plan to use Fabric | You feed your own warehouse with non-Microsoft tools | Only as a stopgap for an eligible existing organization |
What changes when you leave the add-in
Stops permanently on November 30, 2026. Exported files stay, nothing new arrives. You uninstall it from Environment Add-ins in Lifecycle Services once you're done.
Not open to new customers since October 15, 2026. Existing customers have until December 2027, and the opt-in URL doesn't extend that.
The add-in removed deleted rows from the lake straight away. Fabric and Synapse Link keep them flagged with isDelete, so a report that doesn't filter will count them. Microsoft documents a 28-day purge for soft-deleted rows in Delta files.
ID becomes FnO_Id. Fields named after SQL reserved words get a trailing underscore, so Level becomes Level_ and Resource becomes Resource_.
These fields don't carry across to Synapse Link or Fabric link. If anything downstream joins on a TZID column, it needs rewriting.
Memo and long description fields of type nVarchar(Max) come through, but they're truncated at 2,000 characters. Check anything that reads full notes.
Pick DirPerson and you don't automatically get every field from its base table, DirPartyTable. Add both tables and join them, or use the FastTrack views.
You can put up to 1,000 tables in a profile and run up to 10 profiles per environment. Use a managed identity and it'll write to a firewalled storage account too.
This newer engine skips the CSV step and writes straight to Delta Parquet. Microsoft quotes up to 1M or more records an hour per table for Finance and Operations. It rolls out by station, and an existing link has to unlink and relink to get it, which triggers a full initial sync.
Link to Fabric has a few traps, and you won't find them in the overviews
Fabric is the sensible default, but it isn't a drop-in. Microsoft's own FastTrack team lists what breaks when you move Synapse serverless views across, and that list is the best free checklist you'll find. Lakehouse names and string comparisons are case-sensitive by default, so where dataareaid = 'usmf' only matches that exact case. Metadata arrives in lower case where the add-in used mixed case, which trips Power Query steps that refer to columns by name.
Strings also default to varchar(8000). That's fine inside Fabric, and it can cause performance or compatibility trouble if you copy the schema unchanged into SQL Server. The FastTrack notebook, DVFabricLinkUtil, creates a case-insensitive warehouse and builds views that handle derived tables, soft deletes and collation. Read it before you hand-write any of that.
Keeping your Synapse serverless SQL estate pointed at Fabric data is harder than it sounds. Low-latency sync writes Delta tables with deletion vectors, and Microsoft says serverless pools don't support those in all scenarios. The answers on offer are moving that workload to the Fabric SQL analytics endpoint, or running a notebook that rewrites the tables, which adds processing time and lag.
Then there's change trackingdefinitionA setting that stamps each row with a version so a sync service can tell what changed. Most tables without it don't appear., and this one can eat your month. Tables need row version change tracking to appear, apart from a few system tables. Microsoft keeps enabling actively used tables through application updates, but custom tables are yours to enable, and on older versions some others too. In a build at 10.0.34 or later, the Sql row version change tracking configuration key has to be switched on in maintenance mode, and database sync then adds a rowversion column. Old X++ doing INSERT INTO table2 SELECT * FROM table1 breaks on that read-only column, which is why Microsoft says to validate it in a sandbox first. Custom tables need the property set by a developer too, so get that request in early.
The dates to plan around
- Nov 1, 2024Add-in retired
It kept running after Microsoft retired it, which is how a team can still depend on it today. Don't read that as more time.
- Oct 15, 2026Synapse Parquet closes
New customers can't choose Delta (Parquet) in Synapse Link any more.
- Nov 20, 202610.0.47 end of service
No new cumulative updates after this, so a site still on it should get current before fixing builds.
- Nov 30, 2026Export to Data Lake stops
From here on, nothing new reaches the lake. Your files don't go anywhere, and don't count on Microsoft moving this date again.
- Jun 1, 2027Synapse trusted services
Microsoft's extended change date for how Synapse reaches firewalled storage and Key Vault. A new workspace setting decides the behavior.
- Dec 2027Synapse Parquet ends
Anyone still using it has to be on CSV output or Link to Fabric by then, so don't build anything new on it.
How your setup changes once the add-in has gone
Today, the add-in writes CSV and you stage it yourself
Change data capture feeds CSV files into your own data lake. Because CSV reads poorly, many teams copy it into a staging database with Data Factory before Power BI ever touches it.
Afterwards you've got no lake to run. Dataverse holds the replica and Fabric reads it
Dataverse keeps a Delta Parquet replica and exposes it through OneLake shortcuts, so there's no storage account of your own. Power BI can read it directly, and teams that must keep a warehouse copy can still load one from Fabric.
Identity deserves its own line in the plan, because all three routes hand something a lot of access. For Fabric, Microsoft recommends a workspace identity, since it removes secrets and avoids the service principal misconfiguration it calls the most common setup failure. That identity becomes an application user in Dataverse, commonly with System Administrator. Treat it like the privileged account it is: name an owner and review who can touch that workspace.
Synapse Link has its own set. Allow storage account key access is needed only for initial setup, so switch it off afterwards. Keeping storage behind a firewall needs a managed identity and an enterprise policy, and only one policy can attach to an environment. That method isn't available in GCC, GCC High or China. Watch this conflict too: profiles secured with managed identities can't currently be linked to Fabric, so a locked-down profile won't quietly become your Fabric path later.
- Azure storage and IO
- Serverless SQL queries
- Data Factory copy jobs
- Staging databases
- Move to Synapse Parquet and you add Spark. Microsoft's preview ranges run $600 to $8,300 a month, by volume and refresh rate
- Fabric capacity, shared across workloads
- More Dataverse database storage, and that use counts against what you've bought
- Sync 500 GB and Dataverse storage could grow by around 100 GB, assuming five to eight times compression. That's Microsoft's example, and yours will differ
- Untick tables nobody uses. Only selected tables consume storage, though some system and add-in tables can't be removed
Those figures come with Microsoft's own warning that they rest on preview customers and that your volume and data will change them, so treat them as a starting point for your own estimate. One practical check: ask your Power Platform admin how much database capacity you have free before the first sync, because storage notifications and overage status are based on tenant-wide use. Copying or restoring an environment also needs capacity to be available, and that's a bad thing to discover mid-project.
What to do now, by who you are
- Ask IT one question: which of our reports depend on Export to Azure Data Lake?
- Name the reports that the November close can't run without, and have someone own each.
- Agree a fallback for the close, such as running those reports inside Finance and Operations.
- Check Environment Add-ins in Lifecycle Services for production and every sandbox.
- Note your version and build under Help & Support, then About, against Microsoft's minimums.
- Enable the Sql row version change tracking key in a sandbox first, in maintenance mode.
- Write down every pipeline, view and model that reads the lake, and the columns each one needs.
- Stand up the replacement alongside the add-in and compare row counts table by table.
- Add a freshness check on file dates or the latest SinkModifiedOn. Long-running transactions can re-sync a record and move that field, so don't read its gap from ModifiedOn as latency.
- Pick workspace identity for Fabric, and make someone answerable for that application user.
- Turn off storage account key access once the setup finishes.
- Limit roleAssignments/write to the resources involved, since it can grant other roles.
A plan that fits in 25 days
From inventory to uninstall
- 01Inventory what reads the lake
Check storage logs, Data Factory pipelines, Synapse views and Power BI lineage. Don't stop at the main warehouse. Someone may have connected a spreadsheet straight to the lake, so ask finance too.
- 02Pick a route per consumer
If it's Power BI or Fabric reading the data, send it to Link to Fabric. If non-Microsoft tools load a warehouse, send it to Synapse Link incremental CSV. Some estates need both, and Microsoft calls the two complementary.
- 03Turn on change tracking in a sandbox
Switch on the configuration key, run your batch jobs and see what X++ falls over. Custom tables and entities then go in your next deployment. Before you plan around an entity, check the validation report under Row version change tracking, since not all of them pass.
- 04Choose tables, not everything
Finance and Operations tables aren't auto-selected, so add the ones you use. Add base tables for derived tables, and keep a comma-separated list, because a database restore means adding them again.
- 05Rebuild the views
Run the FastTrack tooling if it fits. Otherwise filter isDelete, map renamed columns, handle case-sensitive joins and add non-master company filters if you use master company data sharing.
- 06Run side by side and reconcile
Compare row counts and key totals against the old files, using a ledger balance finance recognizes. Expect some differences from soft deletes, purges and the new column shapes, and explain each one.
- 07Cut over before the close
Repoint reports while the old export still runs, so you can step back. Don't leave this for the Friday after Thanksgiving, when the people you'd need are out.
- 08Uninstall the add-in
Once nothing depends on it, take it out from Environment Add-ins in Lifecycle Services. You don't need downtime or a restart for this, and your files stay. Change data capture takes a while to switch off completely, so don't worry if it lingers.
If you take the incremental CSV route, two details will bite your pipeline. Read only from older time-stamped folders, since Changelog/changelog.info names the folder still being written. And expect duplicates: without Delta conversion, long-running transactions can repeat records across folders, so your loader has to handle the same ID and version number more than once.
If it goes wrong, or the date arrives first
Missing the date doesn't lose the data you already have. It stops new data, so what you need most is to stop people trusting stale numbers.
- 01Spot itfirst hour
- Look at the newest file in the lake, then at what got posted today in Finance and Operations.
- Check whether last night's refreshes succeeded on old data, since a green refresh proves nothing here.
- 02Containsame day
- Tell finance which reports are stale and from what date, before anyone uses them for the close.
- Label or pull affected dashboards, and run critical close reports inside Finance and Operations.
- 03Restore a feedfirst days
- Get the tables your close needs into Link to Fabric or an incremental profile first, and add the rest later.
- Expect an initial sync first. Don't promise a time, since it depends on table size and load.
- 04Reconcilebefore sign-off
- Tie the new feed to the ledger for the period that matters, and record any variance with its reason.
- Rerun downstream jobs for the gap once the new feed has caught up.
- 05Prevent a repeatthis quarter
- Put a freshness alert on every feed, so the next stale table gets noticed by someone.
- Put December 2027 on the calendar if any Synapse Parquet profile remains.
- Have someone read Microsoft's removed-features list every release, so the next date doesn't surprise anybody.
What this looks like at three kinds of company
- the setup
- The add-in writes CSV, Data Factory loads Azure SQL overnight, and finance's close pack is a set of Power BI reports. Nobody on the team built the original pipeline.
- what happens
- Data Factory keeps copying the same files after November 30. The refreshes stay green, and the close pack quietly misses the last transactions of the month.
- what to do
- Move to Link to Fabric, rebuild the views with case-insensitive collation, and add a freshness alert. Keep the old load running until the numbers reconcile.
- the setup
- Change feeds from the add-in flow into a warehouse outside Azure, and the data team has no plans for Fabric. Downstream jobs are written around the change feed's shape.
- what happens
- Fabric would mean rethinking the whole flow, and Synapse Parquet is closed to new customers and ends in December 2027, so neither looks like a quick answer in the time left.
- what to do
- Create a Synapse Link profile with the incremental folder structure, adapt the loader for time-stamped folders, and handle duplicates and deleted rows with empty bodies.
- the setup
- Security insists on firewalled storage with a managed identity, and Fabric workspaces must sit behind private endpoints. Finance wants Fabric's reporting anyway.
- what happens
- Workspaces that use private endpoints for all traffic aren't supported for Link to Fabric, and managed identity Synapse profiles can't link to Fabric either. The two demands collide.
- what to do
- Get security and the data team in a room this week. Microsoft's managed identity steps list a Synapse workspace as a prerequisite, so test an incremental CSV profile on firewalled storage now, and settle Fabric's network rules after that.
How Cohash helps
We work on Dynamics 365 Finance and Operations alongside Fabric and Dataverse, and on a clock like this the job is mostly inventory, change tracking and reconciliation. See our Finance and Operations page for what we cover, hire an engineer if your team is short for the cutover, or start with an assessment to list what reads your lake. If Fabric is new to you, our Databricks, Snowflake and Fabric comparison covers how it bills.
What to take from this
- 01
Export to Azure Data Lake stops on November 30, 2026, with no extensions. Files stay, new data doesn't arrive.
- 02
Stale data won't always raise an error, so add a freshness check and don't rely on green refreshes.
- 03
Don't build new on Synapse Parquet. It closed to new customers in October and ends in December 2027.
- 04
Use Link to Fabric if you report in Power BI or Fabric, and Synapse Link incremental CSV if you feed your own warehouse.
- 05
Start change tracking in a sandbox today, because it's the step most likely to eat your remaining weeks.
- How Cohash delivers Dynamics 365 Finance & Operations: scope, roles and architecture
- How Cohash delivers Microsoft Fabric: scope, roles and architecture
- How Cohash delivers Microsoft Power Platform: scope, roles and architecture
- Hire vetted Dynamics 365 Finance & Operations engineers
- ERP systems
- Book a 30-minute working session with a senior engineer
01When does Export to Azure Data Lake stop working?
November 30, 2026. Microsoft retired it back in 2024, but it's kept running until now. That's the day it really stops, and you won't get an extension. What's in your lake stays.
02Can we get an extension?
No. Microsoft answers this one bluntly in its transition FAQ: there won't be extensions after November 30, 2026. Plan as if nobody can get you more time, because nobody can.
03We already use Link to Fabric or Azure Synapse Link. Are we affected?
No. The notice applies only to the legacy add-in you install through Lifecycle Services. Microsoft says both services stay supported. Synapse Link's Delta (Parquet) export has its own separate deprecation, ending December 2027.
04Should we move to Synapse Link or Fabric?
Microsoft points most organizations to Link to Fabric with low-latency sync. If you have to keep the data in a storage account of your own, use Synapse Link. For Finance and Operations tables that means incremental CSV, or Parquet until December 2027 if your organization is eligible.
05Will our existing data disappear?
No. Files already exported to your data lake remain in place. Reports reading them can look normal while the data ages, so check freshness and don't assume a successful refresh means current numbers.
06Will our existing reports and views keep working after the move?
Plan for changes, even though Microsoft says the data shapes are the same and calls the schema changes minor. ID becomes FnO_Id, some columns are renamed or removed, deleted rows stay flagged, and Fabric names and joins are case-sensitive by default. Microsoft's FastTrack tools help rebuild views with the old shapes.
07Some of our tables don't show up in Fabric or Synapse Link. What's wrong?
They need row version change tracking. Turn on the configuration key, and set the Allow Row Version Change Tracking property on custom tables. Some older entities can't be enabled, so choose the tables behind them. Master planning tables shouldn't be enabled.
08How do we remove the add-in afterwards?
Your admin does it from Lifecycle Services, under Environment Add-ins on the environment page. Nobody has to plan downtime or a restart, and the files stay in your lake.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1After November 30 your dashboards refresh with no errors. Copy jobs still read the lake. What should you conclude?
show the answer
B. Nothing yet. Go and check how recent the data in those files actually is Exported files stay in place after the stop, so jobs can succeed against rows that no longer change. Only a freshness check tells you the data is current.
-
Q2A team feeding a non-Microsoft warehouse from change feeds needs a replacement this month. Which fits best?
show the answer
D. Point a new Synapse Link profile at storage and turn on incremental folders Microsoft calls incremental CSV the equivalent of change feeds, and all you need is a storage account. Synapse Parquet won't help, since new customers can't get it and it's gone by December 2027.
-
Q3After moving to Fabric, a ledger total comes out higher than Finance and Operations shows. What should you check first?
show the answer
A. Whether the report filters rows flagged isDelete Fabric and Synapse Link keep deleted rows and flag them, where the add-in removed them straight away. A report without that filter counts rows that no longer exist.