Every year, I purchase health insurance coverage on the New York State insurance exchange. This process usually lacks drama – as I purchase insurance from Emblem Health every year. This year, I ran into an interesting issue that had to do with my hosts-level ad blocker, hBlock. Let us examine.

What is hBlock?

The GitHub page for the hBlock project describes hBlock as follows:

hBlock is a POSIX-compliant shell script that gets a list of domains that serve ads, tracking scripts and malware from multiple sources and creates a hosts file, among other formats, that prevents your system from connecting to them.

In short, hBlock is a script that generates a list of domains that one’s computer will not be allowed to connect to. While popular ad-blocking browser extensions such as AdBlock Plus, uBlock Origin, and AdGuard block ads in a specific browser, hBlock works for the entire system by modifying the hosts file.

Renewing My Health Insurance

In order to have health insurance coverage from the New York State Exchange kick in for January 1, 2022, one must complete his or plan selection by December 15, 2021.

On the evening of December 15, 2021, I began my quest to renew my insurance. To be sure, doing this on the night of the deadline may seem unwise, but I have done it before and I knew which plan I was purchasing. In any event, the worst-case scenario was that my coverage would start in February instead of January.

I confirmed all of my personal information and projected by income for the upcoming year – erring on the side of a slight overestimate. Having completed these steps, it was time for me to choose my insurance plan.

Choosing a Plan

Choosing a plan is a two-step process. First, the user goes to a screen wherein he or she can set search parameters to sort through all of the available insurance plans for his or her actual or projected income level. This also allows the user to compare plans.

Since I knew I was purchasing the available Emblem Health plan, I navigated to that and entered my selection.

Choosing the plan is not enough, however. Doing that takes the user to a page that shows that he or she has selected a plan, but in order to complete the selection, the user must click a button on the bottom right of the page – something to the effect of “View My Selection.” When I tried clicking that button, nothing happened. Thus, I had chosen a plan, that plan showed up on my account, but I could not finish acquiring it.

Troubleshooting

I ordinarily use an assortment of extensions that can break down? the functionality of webpages in numerous ways. The main extension in this regard is NoScript – but I had already disabled that for the tab I was handling my insurance affairs on.

I began the process on my hardened Firefox browser – which I usually use for payments. Contemplating that maybe this was causing an issue, I tried it in an incognito Ungoogled Chromium (my primary browser) window with no extensions, but I ran into the same issue. Finally, I tried it on Brave, which I keep around as a backup browser, but I again encountered the same issue.

That I had the same issue across three distinct browsers with extensions disabled suggested that my browsers were not the issue. Now, I must note here that I am not the world’s foremost computer system expert. On the spectrum of Linux-users, I fall on the low-end of the aptitude scale. But I took it upon myself to troubleshoot the situation by poking around the developer tools panel in Ungoogled Chromium. Here, I made an interesting discovery that gave me an idea.

Identifying a Possible Culprit

I was in the Developer Tools pane for the page where I was not being permitted to review my insurance plan selection so I could finalize it. Under “Console,” I found the following:

NY State of Health confirmation page with hblock enabled.

That appeared to me to be a list of domains that I was not connecting to. A few were Google domains, but I did not know what the first and fifth were. Whether this was the actual issue, it made me consider disabling hBlock temporarily to see if that would allow me to proceed in my insurance selection.

I temporarily disabled hBlock by generating a hosts file with no blocked domains. In order to do this, I opened a terminal window and, per the hBlock README, typed:

hblock -S none -D none

I refreshed the page and tried the button again. This time it worked – taking me to the next page in the New York State Health Exchange flow wherein I could review my choice of plan and finalize my selection.

At the time, I had forgotten to capture the before and after shots from the console with hBlock enabled and disabled. I went back and captured the same console window that I showed above, but with hBlock disabled:

NY State of Health insurance confirmation page in Google developer console.

As you can see, the domains that I was not connecting to before were no longer listed.

Conclusion

It is clear that the reason I could not complete my health insurance connection was that a domain that I needed to connect to was on hBlock’s block list. I am not entirely sure if the console window I captured in two screenshots actually identified the precise issue, but at a minimum, it gave me the idea to try temporarily disabling hBlock.

What is the moral of my story?

To start, hBlock is a terrific and well-documented user-friendly script. Since I began using it in September, I have used it to great effect both on my main system (running Manjaro Linux, which is based on Arch) and on Debian– based systems. Until this situation with the New York State health exchange, I had not had any issue with it .

My takeaway from the story is that it is important to have at least a basic understanding of the tools that one uses. Having noted that I am not a high-level Linux user, because I nevertheless do have a basic understanding of what hBlock does and have read and saved its Readme on its GitHub page. As a result, I was able to consider the issue and look up a solution before the clock struck midnight.

As for hBlock itself, I used it to generate a new hosts file immediately after capturing my before and after screenshots for this article.

An XFCE terminal window showing the result of running the "hblock" command to build a hosts blocklist on Manjaro.
Screenshot of my rebuilding my hosts file with the “hblock” command. I redacted by computer name and username in my characteristically sloppy way as if someone could actually do something with that information. I put the terminal over this article in the WordPress editor.

That it blocks at least some domains on New York State government sites gives me great comfort. I look forward to continue enjoying its powerful ad, domain, and tracker blocking going forward.

Invitation For Comments

If you conclude that I either misunderstood something in my diagnosis of the situation or missed an issue, I invite you to enlighten me by submitting your take. If I receive any submissions that shed further light on the issue (or explain why I am wrong about everything), I will update this article with the new information.