how to resolve The message filter indicated that the application is busy. (Exception from HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

31,016

Solution 1

I ended up removing:

 PowerPoint_App.Visible = MsoTriState.msoTrue;

And it worked...!!!

Solution 2

I'm working through a similar problem (controlling Excel via PowerShell), and wanted to add that -- in a way I cannot begin to explain -- the analogue to @Milind Anantwar's suggestion caused my script to start working.

More details, in case they help:

  • In my case, everything worked fine when run locally. I started seeing the

    Application is busy

    exception only when I moved to executing via an Azure Hybrid Worker Runner.

  • With reference to the following snippet, I was seeing the exception after line 2, but removing line 2 "fixed" the problem:

    $excel = New-Object -ComObject Excel.Application    
    $excel.visible = $SHOW_EXCEL    
    $workbook = $excel.Workbooks.Open($_excel_file) 
    
  • I saw the exception when $SHOW_EXCEL was set to $false.

Solution 3

I just want to say that Nikolay's advice was 100% spot on for me. Although my problem was with code that interacted with Excel rather than PowerPoint, I believe it'll apply all the same.

Suddenly and seemingly out of nowhere a service that had been running flawlessly for years without issues started encountering this error. There weren't any recent code changes that could've been suspect, either.

I logged into the server via Remote Desktop using credentials for the service account that runs the automated service in question and as soon as I manually launched Excel, I was presented with a pop-up with some unrelated news I didn't care about. I clicked OK on this, closed Excel, logged out, and restarted the service and voila! No more issues.

Long story short, the root cause of the problem (for me) was that Excel was trying to present a pop-up and continued code execution couldn't continue because there wasn't a user to acknowledge the pop-up. Acknowledge it and your issue will go away if you have the same issue I did.

Share:
31,016
Milind Anantwar
Author by

Milind Anantwar

#SOReadyToHelp Like my contributions? Buy me a coffee via Paypal

Updated on August 01, 2022

Comments

  • Milind Anantwar
    Milind Anantwar almost 2 years
    PowerPoint.Application PowerPoint_App;
    PowerPoint_App = new PowerPoint.ApplicationClass();
    PowerPoint_App.DisplayAlerts = PowerPoint.PpAlertLevel.ppAlertsNone;
    PowerPoint.Presentation presentation;
    presentation = null;
    try
    {
        PowerPoint_App.Visible = MsoTriState.msoTrue;
        presentation = PowerPoint_App.Presentations.Open(strPptFilePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
        PowerPoint.Slide tempSlide = null;
        int totalSlides = presentation.Slides.Count;
        int slideNo = 0;
    

    I am getting the below exception on PowerPoint_App.Presentations.Open code.

    Exception Message: The message filter indicated that the application is busy. (Exception from HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

    I did not received this error previously on this block of code. Everything was working perfectly before. Can anyone help?

  • Ahmed ilyas
    Ahmed ilyas about 10 years
    out of curiosity - did you try to swap the lines around? So you make the app visible AFTER you have opened the presentation...
  • Milind Anantwar
    Milind Anantwar about 10 years
    @Ahmedilyas:i did not tried that. However as i already said,same code used to work previously.
  • Nikolay
    Nikolay about 10 years
    The office app (powerpoint) may be simply showing some message (like re-activation message, or news, or whatever message may it may opt to show on start-up) and waiting for you to click on it.. "DisplayAlerts=None" does not block those. This is sometimes the reason for this error. Try simply starting PowerPoint by hand to see if there is some pop-up message on start-up.
  • A N
    A N over 8 years
    For what it's worth, I also found that I was unable to get the COM object while running my process as a scheduled task. Running it as a standard application seemed to do the trick, though.
  • SSilk
    SSilk almost 4 years
    I just encountered the same problem as the OP using Perl module Win32::OLE to read Excel files. Example I was working off of had a line $Excel->{Visible} = 1;. Commenting this out fixed the issue for me.
  • Mike Lowery
    Mike Lowery almost 3 years
    Didn't resolve it for me. I actually got the COMException when calling xlApp.Ready!
  • Leo Gurdian
    Leo Gurdian over 2 years
    @MikeLowery Interesting. I would check the 'Microsoft Visual Studio Tools for Office 2010 Runtime' and do a repair.
  • MikeDev
    MikeDev about 2 years
    For Interop Excel, a similar thing worked for me! var excelApp = new Microsoft.Office.Interop.Excel.Application(); excelApp.Visible = false;