Need help?

Our experts have had an average response time of 11.7 minutes in August 2021 to fix urgent issues.

We will keep your servers stable, secure, and fast at all times for one fixed price.

Cloudflare “Error 1101: Worker Threw Exception” – How to troubleshoot

by | Jun 29, 2021

Wondering how to fix Cloudflare “Error 1101: Worker Threw Exception”? We can help you.

Generally the “Error 1101: Rendering error. Worker Threw Exception” occurs when Cloudflare Worker is throwing a runtime JavaScript exception.

Here at Bobcares, we often handle requests from our customers using Cloudflare to fix similar errors as a part of our Server Management Services.

Today we will see how our Support Engineers fix this for our customers.

How to troubleshoot Cloudflare “Error 1101: Worker Threw Exception”

Following are the steps with which our Support Engineers troubleshoot this issue:

Identifying error: Workers Metrics

We can find out whether the application is experiencing any downtime or returning any errors by navigating to Workers Metrics in the dashboard.

Debugging exceptions

After identifying the Workers application that is returning exceptions, we can use wrangler tail to inspect, and fix the exceptions.

Exceptions can be seen under the exceptions field in the JSON returned by wrangler tail.

Once we identify the exception that is causing errors, we can redeploy our code with a fix, and continue trailing the logs to confirm that the issue is fixed.

Setting up a logging service

A Worker can make HTTP requests to any HTTP service on the public internet. We can use a service like Sentry to collect error logs from the Worker, by making an HTTP request to the service to report the error.

While logging in using this strategy, we must remember that outstanding asynchronous tasks are canceled as soon as a Worker finishes sending its main response body to the client.

To ensure that a logging subrequest completes, we can pass the request promise to event.waitUntil()
For example:

addEventListener("fetch", event => {  event.respondWith(handleEvent(event))}
async function handleEvent(event) {  // ...
  // Without event.waitUntil(), our fetch() to our logging service may  // or may not complete.  event.waitUntil(postLog(stack))  return fetch(event.request)}
function postLog(data) {  return fetch("https://log-service.example.com/", {    method: "POST",    body: data,  })}

Go to Origin on Error

By using event.passThroughOnException, the Workers application will pass requests to our origin if it throws an exception.

As a result, it allows us to add logging, tracking, or other features with Workers, without harming our website’s functionality.

addEventListener("fetch", event => { event.passThroughOnException() event.respondWith(handleRequest(event.request))}) async function handleRequest(request) { // An error here will return the origin response, as if the Worker wasn’t present. // ... return fetch(request)}

[Need assistance? We can help you]

Conclusion

To conclude, we saw the steps that our Support Techs follow to fix this error for our customers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = "owonCMyG5nEQ0aD71QM";

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF