Word VBA function InsertFile is now failing on all builds from 15427.20194 Aug 3, 2022 and later

Anonymous
2022-09-11T17:03:40+00:00

We have a product that assembles custom templates that has been around for about 20 years that operates on a library of about 1 million Word .docx format templates.  With users across the world.  Its been in use on every version of Word since 2003 (currently only supported on all versions of Office 365 but it also still works on Word 2010).   We use the Word VBA function InsertFile to append pages together to create custom documents from the template library.

Recently all of our installations started failing with the InsertFile function returning error 5097 - "Word has encountered a problem".  And customers have started reporting the same error.

We traced it down to being introduced in the Aug 3 Build of Word and verified it on multiple computers (both Windows 10 and Windows 11).   If we roll back our Word builds through the last 7 builds we found that in every case the June 14, June 29, July 6, July 18 builds of Word work fine.   But all 3 builds after that which are Aug 3, Aug 9 and the current Aug 31 fail.

Something appears to have been recently broken by Microsoft in the Aug 3 Build that causes the Word's InsertFile function to fail.    This happens on almost all of our Word .docx template we have tested.    But when inserting the file via the Word toolbar's Insert > Text From File > browse to the file it works.  But it always fails now when calling the InsertFile function via VBA.   Again, this is not a new macro or templates.  This code has been in use for almost 2 decades and the templates have been in use for for many years.   Its only since the recent builds of Word in the last month that installations are now starting to fail everywhere.

This zip file linked below contains the macro vba test function and some example files to reproduce the problem.

InsertFile Failure Test

When we save those templates that are failing to insert as legacy Word 2003-2007 .doc files they do insert without failing.   And if we save them in Word 2003-2007 XML or as an OpenDocument .odt file they insert correctly.   But if we save them as Word XML .xml or Strict Word XML .xml they also fail.  So there is nothing corrupt in the files, it appears to be inserting current format files of various file formats are failing, but saving those failing files as legacy formats they insert correctly.

How do we submit this problem to Microsoft's Office 365 team as a bug report? This is a serious problem that breaks our product and requires us to have everyone roll back their Office 365 to the July 18, 2022 build and we're in the process of having to update our product to provide instructions when the error occurs on how to roll back Office 365.

The code in the test script is also here. But it needs the .docx files from the ZIP file to operate on.

Sub InsertTest()

Dim DocRng As Range  
Dim FileToInsert As String  
Dim SourceFile As String  
Dim MsgStr As String  
Dim MsgResult As Long  
          
On Error GoTo ErrHandler  
 
SourceFile = "c:\temp\CoverLetter.docx"  
  
FileToInsert = "c:\temp\ExecSummaryA.docx"      ' This file fails to insert  

' FileToInsert = "c:\temp\ExecSummaryB.doc" ' This file works (this was the ExecSummaryA.docx Saved As a .doc file in Word 2003-2007 format)
' FileToInsert = "c:\temp\AccessoriesA.docx" ' This file fails to insert
' FileToInsert = "c:\temp\AccessoriesB.doc" ' This file works (this was the AccessoriesA.docx Saved As a .doc file in Word 2003-2007 format)

Documents.Open FileName:=SourceFile  

ActiveWindow.ActivePane.View.Type = wdPrintView  
  
Set DocRng = ActiveDocument.Content  

DocRng.Collapse (wdCollapseEnd)  
              
DocRng.InsertFile FileName:=FileToInsert, Range:="", ConfirmConversions:=False, Link:=False, Attachment:=False  

Exit Sub  
  

ErrHandler:

MsgStr = "Error: " & Err.Number & " - " & Err.Description  

MsgResult = MsgBox(MsgStr, vbSystemModal + vbMsgBoxSetForeground, "Insert Error")  

End Sub

Microsoft 365 and Office | Word | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
Answer accepted by question author
Anonymous
2023-03-01T15:20:19+00:00

Great news. The 2302 patch just came out, tested it on a couple computers here and the InsertFile function is now working properly.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

66 additional answers

Sort by: Newest
  1. Doug Robbins - MVP - Office Apps and Services 323.6K Reputation points MVP Volunteer Moderator
    2022-12-06T12:54:47+00:00

    I have sent another message to the Product Team to advise them that the problem still occurs on a Windows 11 machine running Version 2211 (Build 15831.20190 Click-to-Run) Current Channel

    As with prior Versions of Office, the error does not occur here with that version on a computer that is running Windows 10.

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2022-12-02T18:33:19+00:00

    Unfortunately the extra save as I recall didn't work. I tried it again 2 different ways.

    1. open the .docx files, save as .doc files, open the .doc files, save as .docx files. Use InsertFile on them and it generates the 5097 error still.
    2. open the .docx files, save as .doc files, open the .doc files, click the Info > Convert button to convert to current format, save as .docx files. Use InsertFile on them and it again generates the 5097 errors.

    The only 2 things that have gotten around the 5097 errors for me so far are:

    A) Save the .docx files as .doc files using temp file names, use InsertFile on the legacy format .doc file, delete the temp file (this works but I tend to loose items in the footers).

    B) Create a new docx file from scratch, open the .docx file with the content, use a Copy/Paste operations to copy from the original .docx to the empty .docx file, I use custom Word styles so have to also reapply all my custom Word styles that don't come over from the copy/paste. This works but I get an artifact of a bullet point graphic added in front of the content of the file when InsertFile inserts the rebuilt .docx file. So then I have to run a batch process to post-process the assembled file to find and remove all the added bullet point graphics. And sometimes I lose something in the footer.

    Neither workaround is great but that's all I came up with so far barring having to use the copy/paste to rebuild all 1 million plus templates to go back to using InsertFile without my software having to kick into a work around mode that isn't always perfect and adds overhead. And then having to post process every created document to remove added bullets is kind of hack.

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2022-12-02T17:33:27+00:00

    I'm just setting up to do some tests on this. My templates only have a very small .png graphic at the top and a tiny .png in the footer so hopefully the file sizes won't increase that much but I'll post back what I find.

    EDIT: So I don't see more than about a 20KB difference in file sizes with my documents that have embedded graphics including two that have full size 8.5x11 .jpg files as the backgrounds. When saving either from the .docx to .doc and also back to another .docx

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2022-12-02T17:17:41+00:00

    I have an update

    I confirm the docx to doc to docx works, but... The size of the files are increased tremendously, basically because of the original images contained in the documents.

    That said, in my scenario I approced the problem from another point of view.

    My scenario has a cover page, followed by some other pages, based on the selections the user made in the main program (external to word).

    The options are read from a file xml, so maybe a final document is like this:

    cover + doc1 + doc456 + doc236 + doc55

    another document might be:

    cover + doc73 + doc12 + doc99

    etc... where with the plus sign "+" I mean the file was inserted with our fancy InserFiles command :D

    What I did was remove the pictures in all the files and kept the one I really needed. The who generated the documents applied the text over the original document, having header e footer full with images in each document!

    But, re-thinking the whole process, I only need images in the footer and header of the cover.

    The docs inserted are now just formatted text and images related with the single document.

    I hope this might be of any help

    Was this answer helpful?

    0 comments No comments