Power BI Desktop .PBIX file fails to open with error “ZIP archive contains unsupported data structures”

Today’s blog entry comes from the investigative work of my outstanding SharePoint PFE colleague, Micah Wilkerson. In his customer environment, they had built a nice dashboard in Power BI Desktop, which was then sent via email to another team. When the team attempted to open the dashboard, they received the error message saying that the “ZIP archive contains unsupported data structures”. In our case, McAfee had detected one of the files within the .pbix package to be unsafe and had removed it, thus rendering the .pbix file structure as unsupported. See workaround steps below.

ziparchivecontainsunsupporteddatastructures

To determine why the ZIP archive contains unsupported data structures, you can perform the following operations.

  1. Create a copy of the.pbix file and change the file extension to .zip
  2. Unzip the package and explore the contents

In a functioning .PBIX file, you’ll see the following unzipped folder structure:

functioningpbixzip2

However, in this case, we see the following, including one missing file, [Content_Types].xml, and an addition file, 0_Warning.txt.

malfunctioningpbixzip

Opening 0_Warning.txt shows the following error message:

BLOCKED FILE ALERT

A file has been blocked due to the 'Level 1 File Types' rule.
Context: '[Content_Types].xml'
Disallowed due to filename

Ticket Number: <Ticket Number GUID>
See your system administrator for further information. Copyright 1999-2013 McAfee, Inc.

It appears that McAfee has stripped the xml file out of the zip (.pbix) during email.

Workarounds:

If you have another share location/option to avoid sending via email, you can use that option. Example: Posting it to a shared drive, SharePoint document library, etc.

If you need to try to recover the dashboard you now have that won't open, you can try the following steps:

Since the file [Content_Types].xml was removed from the .pbix zip contents, we can create/locate this file and add it back to the zip contents. The basic work flow is that we will unpack the zip contents of the failed .PBIX file, locate a good copy of the [Content_Types].xml file, copy this file into the unpacked contents, zip the files back up, and rename them again to the .PBIX extension. The missing file will then be included and you should be able to open your .PBIX file again.

  1. Option 1 – Perform the same operations with a working .PBIX file to locate this file (rename to zip, upzip the contents, and copy the [Content_Types].xml file), or
  2. Option 2- Copy the following xml code into a file and rename it to [Content_Types].xml. NOTE: This content could potentially change in the future. I’d suggest the first option if possible.
    1. <?xml version="1.0" encoding="utf-8"?>
      <Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types">
      <Default Extension="json" ContentType="" />
      <Default Extension="png" ContentType="" />
      <Default Extension="js" ContentType="" />
      <Default Extension="css" ContentType="" />
      <Default Extension="svg" ContentType="" />
      <Override PartName="/Version" ContentType="" />
      <Override PartName="/DataMashup" ContentType="" />
      <Override PartName="/DataModel" ContentType="" />
      <Override PartName="/Report/Layout" ContentType="" />
      <Override PartName="/Settings" ContentType="" />
      <Override PartName="/Metadata" ContentType="" />
      <Override PartName="/Report/LinguisticSchema" ContentType="" />
      <Override PartName="/DiagramState" ContentType="" />
      <Override PartName="/SecurityBindings" ContentType="" />
      </Types>

Now that you have a copy of [Content_Types].xml, paste this file into the unzipped contents of the failing .PBIX zip contents and zip the files again. After zipping up these files, rename the file extension to .PBIX and open it in Power BI Desktop.

Now that the missing file is back, the report should be able to open successfully again.

If you see any other error messages when unpacking/unzipping the contents of a failed .PBIX file, please paste the error details in the comments below.

Good luck! Sam Lester (MSFT)