New to Telerik UI for ASP.NET AJAXStart a free 30-day trial

This Is an Invalid WebResource Request Error

Environment

ProductProgress® Telerik® UI for ASP.NET AJAX

Description

When working with Telerik UI for ASP.NET AJAX, I get an error that this is an invalid WebResource request.

Error Message

This is an invalid WebResource request error.

Cause

Such issues often occur when a user has a copy of the page that contains WebResource URLs that have been invalidated by the server, that is, the machine key changed or the Application Pool was recycled. When such a cached copy of the page with the old links is executed, the browser will invoke GET requests for those WebResource URLs and .NET will not be able to decode them anymore. WebResource URLs are handled by the .NET code and individual controls, such as the Telerik controls, cannot affect or fix this.

Solution

Even though it is not currently possible to solve this issue, you can use the CDNs for scripts and skins plus the MS AJAX CDN so that WebResources are used as rarely as possible. As a result, only some dialogs and the binary image and file uploads will keep using WebResources.

You can also alleviate the issue by using the following approaches:

  • After a while, the browser caches are cleaned up and the users will get correct links, so simply waiting a bit may alleviate the situation.

  • Clearing the cache of the browser always helps. Press Ctrl+Shift+Del to open the Clear Browsing Data browser dialog or test in Incognito mode.

  • Look into ways to increase the Application Pool recycle time or implement a heartbeat-like functionality to keep it alive at all times.

  • You may experience the error in a load-balanced environment where the servers are configured to use different machine keys. In this case, the request to a resource may fail due to the encrypted querystring parameter which identifies the resource as being non-decryptable on the other server.

    To solve this issue, ensure that all servers use the same <machineKey> and Telerik.Web.UI.WebResourceSession as explained in the Integrating RadControls in WebFarm/WebGarden blog post.