OfficeDev / office-js

A repo and NPM package for Office.js, corresponding to a copy of what gets published to the official "evergreen" Office.js CDN, at https://appsforoffice.microsoft.com/lib/1/hosted/office.js.
https://learn.microsoft.com/javascript/api/overview
Other
683 stars 95 forks source link

🔥🐛 Crash on the attached file in Excel for Windows Desktop #2776

Closed wh1t3cAt1k closed 1 year ago

wh1t3cAt1k commented 2 years ago

Your Environment

Processor 12th Gen Intel(R) Core(TM) i9-12900F, 2400 Mhz, 16 Core(s), 24 Logical Processor(s) Edition Windows 11 Pro Version 21H2 Installed on ‎12/‎05/‎2022 OS build 22000.856 Experience Windows Feature Experience Pack 1000.22000.856.0

Expected behavior

File does not crash

Current behavior

File crashes

Steps to reproduce

  1. Open the attached file
  2. Trust the incoming store add-in (Velixo)
  3. Wait a little bit. If needed, open the file again.

Provide additional details

crash-demo.xlsx

It might or might not be important: we have delivered an update to the JS bundle with our application recently, as well as updated the custom functions metadata JSON (including some function signatures). The file was created with the previous version of the add-in.

wh1t3cAt1k commented 2 years ago

The problem is not observable on Mac or Excel Web.

wh1t3cAt1k commented 2 years ago

Workaround:

I managed to fix the file by unzipping the xlsx, deleting the webextensions folder and zipping it up again.

This means the root cause lies somewhere in that folder.

Another important consideration is that our add-in uses the XLL compatibility mode with our legacy COM-based add-in, which might be important for the repro, see manifest.zip.

Obviously we cannot require these crazy steps from the customers, so I beg you guys to get to the bottom of this!

wh1t3cAt1k commented 2 years ago

Just had another crash on a Mac. I feel like this is really severe.

It may be our personal data point, but after so many years of development, I still often find the framework not as good as the COM-based solution; maybe it's the combination of various delivery modes (AppSource/admin delivery/development insertion) and Office.js that doesn't work out well, maybe it's the XLL compatibility mode that causes issues, I don't know, and I hope the experience is different for everyone else.

We, however, have clients dropping off to legacy COM solution and cancelling subscriptions because the amount of troubles is insane - crashes, double-loading of taskpane.html, random errors upon frequent Excel.run invocation, busy errors, weird glitches on large workbooks with >10000 complex custom functions. We might be slightly unusual in the complexity of our architecture and the amount/method of interactions we do with Excel in our reports, but it's really worrying.

This framework deserves much more attention and testing effort from Microsoft than I feel it is getting...

I am willing to work more closely together to smooth everything out - our business success depends on it too, please reach out to me if you want to hear out more about the issues, do joint troubleshooting, or otherwise.

================================

The file is crashing, it was also displaying this issue in the personality menu:

image

This file was working fine on Monday, we only delivered a small JS bundle update to the server (without changing the manifest in the meanwhile), but I don't think it affected anything?

The file itself is sensitive, but again, the workaround was to remove the Velixo add-in, unzip the document, remove the xl/webextensions folder, open it again and install the add-in from the store again.

The webextension1.xml in the crashing file and in the non-crashing file differs:

webextension1.zip

First, the store types are different EXCatalog in the crashing file and OMEX in the working one:

image

Second, "containsCustomFunctions" element is present in the crashing file but not in the fixed file:

image

I vaguely recall that at some point we had the add-in distributed as Admin managed in the Office 365 admin center, then we removed it from auto-distribution and had everyone install from the store manually, might it have something to do with the bug?

If this is the cause, at least it should recognize that this is the same add-in and not crash!

JinghuiMS commented 2 years ago

Thanks for reporting this issue. It has been put on our backlog<Bug#6463394> for internal track. We will keep track of this issue and let you know if there are any updates.

wh1t3cAt1k commented 2 years ago

@JinghuiMS is there any update on this? The issue is pretty bad in our opinion and has produced support requests already.

We'd really like the add-in to be recognized as the same instead of registering multiple times in the workbook.

In addition, we would like clear product rules around the priority of such recognition.

For example, if the user has a sideloaded dev add-in registered in his machine, this version would be preferred to the store / admin managed version from the document.

And vice versa, if someone with a sideloaded dev add-in opens the document with a production add-in, we want the exec team not to see pesky notifications about "this development add-in is no longer available", we want people's sideloaded dev add-ins not to spoil the document for everyone else including our clients.

JinghuiMS commented 2 years ago

@wh1t3cAt1k Sorry we can't repro it after downloaded and opened crash-demo.xlsx. It will show the below after clicked the trust add-in. Do you know whether Velixo has any updates? or can you repro it in your side now? If you can repro it, it's better to provide us the way to repro locally. Thanks.

wh1t3cAt1k commented 2 years ago

@JinghuiMS it is definitely reproducing for me. Please see the attached videos.

https://www.loom.com/share/047d20d5e3bc428e88fe8f6ad84be51b

‼️‼️ Note that as per my steps above, the file I mentioned has two add-ins registered in it somehow.

The first time I saw it there was also a message about the (missing) development add-in with a retry button, which I clicked ("Retry").

Now I don't receive this message anymore, so it's not on the video - but the file crashes every time I open it.

JinghuiMS commented 2 years ago

@wh1t3cAt1k I saw your reply on https://github.com/OfficeDev/office-js/issues/2878 thread. I would like to know your provided file(crash-demo.xlsx) installed 2 same add-ins(Velixo), one is from store, another one is from side-load manifest? is there anything else special?

wh1t3cAt1k commented 2 years ago

@JinghuiMS this is correct. There was nothing special except the fact that we frequently provide an update to our assets on our server (JS, CSS, HTML) without resubmitting the manifest to the store. Unlikely that this can be at play here, but on the off chance it does, it's worth mentioning.

ruijiaMS commented 1 year ago

@wh1t3cAt1k We have checked in the fix for this crash issue and the Integration (Fix) Build will be 16.0.16302.10000, you can have a try with the build ≥ 16.0.16302 when this build is released. Any problem please feel free to ping me.

wh1t3cAt1k commented 1 year ago

I can confirm on the Beta Channel (16307) that the issue is gone. This can be closed. Thank you very much for the fix.