I’ve had this off and on issue for a while in which images and videos don’t load on Twitter with my Google Pixel 3 on both Android 9 and Android 10. If I wait long enough—maybe 60 seconds–the current timeline populates and things generally work.
This makes Twitter even more annoying than its baseline. I often use this as an excuse just to stop using Twitter for the hour or night.
Recently, I noticed that images in the Guardian app weren’t loading either. The full text of the articles would come in, but there were blank boxes everywhere. These aren’t always necessary for the story, but that they’re missing is a little distracting and makes me wonder what else isn’t working on the phone.
While I was out of the house and on LTE today, I noticed that images and videos in Twitter and the Guardian were loading fine. Something finally clicked in my head and I decided there must be some kind of funky problem with my network setup at home.
I’ve had the Cloudflare DNS servers configured on our router for quite a while and haven’t given them too much thought since they seem to work just fine. Today I made a temporary change to Google’s public 126.96.36.199 and 188.8.131.52 DNS servers to see if it made an impact. Sure enough, Twitter images and videos started loading immediately.
I then changed to OpenDNS’s public 184.108.40.206 and 220.127.116.11 DNS servers and the issue came back—no Twitter images or videos. Switched back to Google’s DNS and they started working.
The strange part at this point is that Guardian images still aren’t coming in.
So then I switched back to the DNS my router receives from the ISP and everything immediately started working. Imagine that!
This is great and all, but ISP DNS is generally disgusting. When I try to go to a domain that doesn’t exist, the request is automatically routed to a “non-existing domain landing service” that is branded by Spectrum, Time-Warner, and Charter. That there’s not just one company name associated shows how careful the friendly conglomerate is with branding (and customers’ data).
An opt-out link is at the bottom of the page, but it doesn’t actually work.
So what to do. None of this has any impact on our MacOS laptops. I should do some actual testing, but the DNS lookups still seem faster to 18.104.22.168 than anywhere else. I tried the Cloudflare 22.214.171.124 app on the phone to do DNS over TLS, but it has trouble with Twitter images and videos too. Android doesn’t appear to let you override the DNS, so all requests are made through the router. I’m guessing that ends up being part of the real issue.
I’m going to go with the Google DNS servers for now and see how it feels for the next few days. Then I guess start diving into Netgear Orbi forums to figure out how it could be screwing things up. 🤷🏼♂️
Update, 6:55pm November 24, 2019:
A couple issues combined here:
- There should be a way to manually set DNS in Android, but that doesn’t appear to be available to me. For this reason, the DNS is set to 192.168.1.1 rather than any DNS server I configure on the Netgear Orbi.
- It should be possible to tell the Netgear Orbi to pass DNS servers via DHCP other than its own IP. The Orbi has dnsmasq running, so it apparently assumes that will be the best option and now disables all others.
So now I need to figure out how to get the DNS actually set to the best provider on my phone without downloading one of those shady DNS apps.
Update, 7:11pm November 24, 2019:
From what I can tell, Android 10 no longer allows you to set custom DNS for a specific network. But! There’s a private DNS option available in the general network settings that allows you to configure DNS over TLS.
I first set this to
1dot1dot1dot1.cloudflare-dns.com, but the issue persisted. I then set it to
dns.google and images started loading immediately in both Twitter and the Guardian. Videos are still a little funky, and I’ve found a few images that don’t load, but this may be a good short term fix.
The long term fix needs to be making the router not improperly handle DNS queries for the network.
Update, 7:29pm November 24, 2019:
I’m irritated enough at the router for running its own
dnsmasq instance that I’ve now reached the hack or replace stage of router ownership.
Update, 8:09pm November 24, 2019:
I have shell access to the router and have updated the
dhcpd configuration to send
126.96.36.199 as the DNS server to DHCP clients rather than the router’s IP.
This is excellent because it solves my irritation that the router was running
dnsmasq poorly. This is less excellent because my actual issue with images is still there. 😂
Update, 8:13pm November 24, 2019:
There’s a chance that things are fixed? I’m not really sure, but I should switch to something else. I’ll add an update after a bit once I’ve actually had a chance to use it.