Our Office Web Apps server seems to cause an error in SharePoint when opening a PDF:
Clicking on the link to the PDF in the Document Library opens "Word Web App" and renders the PDF fine (in read-only mode). The URL Action is "Default":
Clicking on the "..." ellipsis (ECB/callout) actions menu and then selecting "Open" causes an error. The URL Action is "Edit" which suggests "Word Web App" has an issue with editing a PDF (you'd expect it to give you the prompt to save it as a Word Doc):
The ULS seems to log some strange "Wopi" errors:
09/12/2013 15:19:41.88 w3wp.exe (0x1CD0) 0x0A00 SharePoint Foundation WOPI ah6ud Unexpected Exiting GetWOPITargetInternal Early - GenerateWacUrl failed to produce a URL/actionEntry for file [FILE].pdf with extension 'PDF' StackTrace: at Microsoft.SharePoint.Utilities.SPWOPIHost.GetWOPITargetInternal(HttpContext httpContext, SPWeb web, Object& spPrimeObject, SPWOPIAction& requestedAction, SPRegionalSettings spSettings, String& wopiAppUrl, String& wopiFavIconUrl, String& wopiAccessToken, Int64& wopiAccessTokenTtl, String& errorMessageToDisplay, String& redirectUrl) at Microsoft.SharePoint.ApplicationPages.WOPIFrameHelper.OnLoadHelper(WOPIFrame frame) at Microsoft.SharePoint.ApplicationPages.WOPIFrameHelper.OnLoad(WOPIFrame frame) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean inc... 922c429c-d091-108c-7801-fd05116e821f
09/12/2013 15:19:41.88* w3wp.exe (0x1CD0) 0x0A00 SharePoint Foundation WOPI ah6ud Unexpected ...ludeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.HttpContext.InvokeCancellableCallback(WaitCallback callback, Object state) at System.Web.UI.Page.LegacyAsyncPageBeginProcessRequest(HttpContext context, AsyncCallback callback, Object extraData) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) ... 922c429c-d091-108c-7801-fd05116e821f
09/12/2013 15:19:41.88* w3wp.exe (0x1CD0) 0x0A00 SharePoint Foundation WOPI ah6ud Unexpected ... at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr ... 922c429c-d091-108c-7801-fd05116e821f
09/12/2013 15:19:41.88* w3wp.exe (0x1CD0) 0x0A00 SharePoint Foundation WOPI ah6ud Unexpected ...nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) 922c429c-d091-108c-7801-fd05116e821f
09/12/2013 15:19:41.88 w3wp.exe (0x1CD0) 0x0A00 SharePoint Foundation WOPI aht19 High WopiFrame: failed to generate iframe URL. 922c429c-d091-108c-7801-fd05116e821f
09/12/2013 15:19:41.94 w3wp.exe (0x1CD0) 0x0A00 SharePoint Foundation Upgrade aiaih High [Forced due to logging gap, cached @ 09/12/2013 15:19:41.92, Original Level: Verbose] desiredVersion: {0} 922c429c-d091-108c-7801-fd05116e821f
Anyone know how to fix?
Update: there was one possibly related issue I found on the net related to TMG - but I don't think this is the problem (we're inside the firewall and I tried putting an explicit proxy bypass on the server name - which didn't help).