In a recent incident involving an iPad running Tailscale, a perplexing connectivity issue arose when attempting to access a p2claw app. While the app functioned correctly on other devices, the iPad displayed a blank page, prompting an investigation into the root cause.
Initial Investigation
The troubleshooting process began by ruling out various suspects: the iPad itself, the WebKit engine, and Tailscale. The investigation revealed that the problem stemmed from a combination of two bugs: a hardcoded constant in webrtc-rs and a design decision within Tailscale.
Identifying the Problem
The app initially loaded enough HTML to display a loading state but then stalled without any console errors. The WebRTC handshake completed successfully, and the data channel opened, yet the iPad failed to receive data. Instrumentation efforts revealed that the outbound buffer on the sending device filled up without confirming delivery to the iPad.
Further analysis showed that the iPad and Mac both reported a maximum message size of 64kb, which was well above the 7-8kb chunks being sent. This led to the conclusion that message chunk size was not the issue, prompting the team to investigate network stability and potential packet loss.
Discovering the Role of Tailscale
After extensive testing, it was determined that Tailscale, a VPN service, was affecting the data transmission. Unlike the Mac, the iPad had Tailscale enabled, which wrapped traffic in an additional layer, potentially fragmenting larger messages into smaller packets. This fragmentation caused issues with WebKit’s ability to reassemble messages correctly.
By capping the message size at 800 bytes, the app loaded successfully on the iPad, indicating that the problem was indeed related to Tailscale’s handling of packet sizes.
Final Diagnosis
Ultimately, the investigation revealed that Tailscale’s IPv6 parser did not support fragmentation, leading to dropped packets. This was confirmed through diagnostic metrics, which indicated that packets were being classified as “unknown protocol” and subsequently denied by Tailscale’s access control list.
The issue was not an inherent flaw in iOS or WebKit, but rather a specific interaction between Tailscale’s handling of IPv6 fragments and the iPad’s network configuration. The findings underscore the importance of understanding how different layers of networking can impact application performance.
This article was produced by NeonPulse.today using human and AI-assisted editorial processes, based on publicly available information. Content may be edited for clarity and style.








