I am writing to formally report a reproducible and destructive bug in Microsoft Excel for Microsoft 365 that causes .xlsm workbooks to become permanently corrupted after every save operation. The bug is fully reproducible from a minimal test case constructed from scratch, as described below. No proprietary files are attached or referenced.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BUG IDENTITY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Product: Microsoft Excel for Microsoft 365 / Excel 2021 / Excel 2024
Builds: All builds with calcId=191029 (introduced with Excel 2021)
Platform: Windows 10 / Windows 11, 64-bit
Format: .xlsm (macro-enabled workbook, OOXML / ISO 29500)
Not affected: Excel 2019 and earlier; LibreOffice Calc (any version)
Error message produced on every open after save:
"Validation and repair were performed at file level.
Certain parts of this workbook may have been restored or removed.
Removed Records: Cell information from /xl/worksheets/sheet3.xml"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ROOT CAUSE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The OOXML specification (ISO/IEC 29500-1) defines the aca attribute on the
<f> (formula) element as the "Alternate Content Acknowledgement" flag.
When set to aca="false", it signals that the formula has been explicitly
reviewed for compatibility with alternate content markup.
Expected behaviour (per ISO/IEC 29500):
Excel should preserve the aca attribute unchanged on save.
Actual behaviour in Excel for Microsoft 365:
On every save, Excel strips aca="false" from ALL <f> tags across ALL
worksheet XML files. On subsequent open, Excel's recovery engine
treats the now-attribute-less formula cells as structurally invalid
and removes them from the workbook without warning.
Two additional problems occur on every save:
1. Excel inserts a calcChain.xml file that was not previously present.
2. On the next open, Excel flags the inserted calcChain.xml as corrupt
and removes it — leaving the workbook in a degraded state.
This creates a silent destruction cycle: save → strip → remove → data loss.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MINIMAL REPRODUCTION STEPS
(no proprietary files required)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 1. Create a new .xlsm workbook with at least three sheets.
Step 2. In sheet 3 (the sheet whose XML will be written to
xl/worksheets/sheet3.xml), enter any formula in cell B5,
for example: =A1+A2
Step 3. Save and close the workbook.
Step 4. Open the .xlsm as a ZIP archive (rename to .zip, or use
any ZIP tool). Open xl/worksheets/sheet3.xml and manually
add aca="false" to the <f> tag so it reads:
<f aca="false">A1+A2</f>
Save the XML and repack as .xlsm.
Step 5. Open the repacked .xlsm in Excel for Microsoft 365.
Verify cell B5 is present and shows the formula result.
Step 6. Press Ctrl+S. Close the workbook.
Step 7. Reopen the workbook.
RESULT: Excel displays the recovery log:
"Removed Records: Cell information from /xl/worksheets/sheet3.xml"
Cell B5 is gone.
Step 8. Inspect xl/worksheets/sheet3.xml in the saved file.
Confirm that aca="false" has been removed from all <f> tags.
This sequence is 100% reproducible on every save in Excel 365 / 2021 / 2024.
The same sequence in LibreOffice Calc produces no error; aca="false" is
fully preserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
QUANTIFIED IMPACT (from a real production workbook)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
In the affected workbook type I am working with:
• 35 worksheets
• 4,768 formula cells carrying aca="false"
• After one save by Excel 365: 0 formulas retain aca="false"
• calcChain.xml: absent before save, injected by Excel, flagged
as corrupt on next open
These numbers are verifiable by any party from a self-constructed
test file; no proprietary data is needed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STANDARD VIOLATED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ISO/IEC 29500-1:2016, §18.3.1.40 — the <f> element and its aca attribute:
"aca (Alternate Content Acknowledgement): Specifies that the application
has acknowledged this formula's alternate content."
Stripping this attribute on save is a violation of the standard that
Microsoft itself co-authored. The attribute is not deprecated in any
published revision of ISO/IEC 29500.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
KNOWN WORKAROUNDS (all inadequate)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• Manually re-injecting aca="false" after each save (requires ZIP/XML
tooling; not viable for end users)
• Saving as .xlsx instead of .xlsm (disables VBA/macro functionality)
• Using LibreOffice Calc for all save operations (removes Excel features)
• Registry key ForceVBALoadFromSource = 1 (addresses VBA compile
corruption but does NOT fix the aca stripping bug)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
REQUESTED ACTIONS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Confirm acknowledgement of this bug in the Microsoft 365 known
issues list or Tech Community.
- Preserve the aca attribute on all <f> tags when saving .xlsm files,
in accordance with ISO/IEC 29500.
- Cease injecting calcChain.xml into workbooks that did not originally
contain it, or ensure it remains valid across open/save cycles.
- Issue a fix via the standard Microsoft 365 monthly update channel.
- Apply the same fix retrospectively to Excel 2021 and Excel 2024
perpetual-licence builds.
I am available to assist with reproduction on a clean test environment
using only files I construct myself. I am not in a position to share
proprietary workbooks.