The upload had been stuck at 63 percent for twenty-two minutes.
I was in a hotel room in Lisbon, trying to send a 4.8-gigabyte video file to a client before midnight. When I began that afternoon, the hotel Wi-Fi had felt unusually good. The VPN connected immediately, the project portal opened, and the first gigabyte disappeared in a few minutes.
By nine o’clock, the estimated completion time had changed from twelve minutes to four hours.
Then it stopped estimating altogether.
I blamed the hotel first.
I disconnected the VPN and ran a speed test. The result was slower than it had been at check-in, but still fast enough to finish the upload.
I reconnected through the same VPN server.
For three minutes, the progress bar moved again.
Then it slowed to a crawl.
I switched to another nearby server. The speed briefly recovered, reached 66 percent, and collapsed again.
That pattern was more irritating than a connection that simply failed. The VPN worked well enough to make me trust it, then deteriorated after I had already committed hours to the session.
The question was no longer whether the VPN was fast.
It was why it became worse the longer I used it.
The short answer
I could disconnect the VPN and upload directly. That would be faster, but it would place the client portal, account session, and destination outside the encrypted tunnel on a hotel network I did not control.
The hotel changed while I was sitting still
At three in the afternoon, much of the hotel was empty.
By nine, guests had returned from meetings, restaurants, and sightseeing. Phones were backing up photographs. Televisions were streaming. Laptops were joining video calls. Children were watching tablets in the rooms around mine.
Wi-Fi is shared. As more devices compete for the same network, speed becomes less consistent. (Apple)
My laptop had not moved.
The network around it had become crowded.
That explained why the ordinary connection was slower in the evening. It did not explain why the upload almost stopped whenever I turned the VPN back on.
Without the VPN, websites still opened and the speed test completed.
With it, the upload moved in bursts, paused, recovered briefly, and stalled again.
The hotel’s weakness was only half the problem. The VPN was handling that weakness badly.
A green connection icon did not mean a healthy tunnel
The VPN app still showed a green status indicator.
The tunnel had not formally disconnected, but the path beneath it had become unreliable.
A large upload has to survive every crowded minute between the laptop, the hotel router, the VPN server, and the project portal. When part of that route slows down or loses data, the connection has to recover and resend what did not arrive.
A short web page can load during a good moment and hide the problem.
A multi-gigabyte upload cannot.
That was why the VPN had seemed excellent at check-in. I had judged it by the first few minutes, before the evening traffic arrived.
The upload was testing something harder: whether the connection could keep working after conditions changed.
The fallback mode had made the problem worse
Earlier that day, the major provider had struggled to connect through the hotel network in its normal mode.
Its support page suggested switching to TCP over port 443, a common fallback on networks that interfere with VPN traffic.
The tunnel connected, and I assumed the problem was solved.
But the browser upload was already using TCP. Putting that traffic inside a TCP-based VPN tunnel created two layers trying to recover from the same packet loss. When the hotel connection became unstable, both slowed down and retransmitted, turning small interruptions into long pauses. (Openvpn)
OpenVPN calls this “TCP meltdown.”
On my screen, it looked simpler.
The hotel grew busier, the upload slowed, and the connection never recovered its earlier pace.
The fallback had helped the VPN connect.
It had not helped the VPN endure.
Switching servers only restarted the cycle
The major provider had years of public history, a large support operation, and servers across Europe.
Those were meaningful strengths.
They also gave me many ways to repeat the same mistake.
I moved from Portugal to Spain. The upload accelerated for a few minutes and slowed again.
France produced a higher starting speed, then a longer stall.
A second Portuguese server reached 71 percent before the project portal reported that the connection had been interrupted.
Every switch created a fresh tunnel. That temporary reset made the new server look better, but the same crowded hotel network soon caught up with it.
Travellers describe the pattern in blunt terms: the VPN works normally at home, then becomes slow or unstable on hotel Wi-Fi. (Reddit)
That was enough to confirm what the repeated server changes had obscured.
A connection that starts quickly is not necessarily one that recovers well.
Starting over was no longer acceptable
At 10:04 p.m., the project portal gave up.
Upload failed. Please try again.
The site had not preserved the partial transfer.
I was back at zero.
The hotel network was now busy enough that another attempt through the same setup might not finish before morning.
I could disconnect the VPN and upload directly. That would be faster, but it would place the client portal, account session, and destination outside the encrypted tunnel on a hotel network I did not control.
Or I could keep changing servers and hope the next brief improvement lasted for the full upload.
Neither choice addressed what had just happened.
I did not need the highest speed during the first five minutes.
I needed a connection that could survive the next hour.
The smaller app treated instability as the task
I closed the first provider and opened OnlydogVPN.
The interface began with situations rather than a server map. I selected the option for a weak or changing network and connected before restarting the upload.
The first few minutes were good, but not dramatically faster than the previous attempts.
This time, I did not judge the result by the opening speed.
Twenty minutes later, the hotel Wi-Fi weakened again.
The upload slowed.
It did not freeze.
The progress bar continued moving, then returned to a usable rate without making me choose another server.
At 74 percent, the hotel Wi-Fi dropped completely.
My laptop switched to my phone’s hotspot.
The upload paused for several seconds and then continued over mobile data. The portal did not sign me out. The file did not return to zero. I did not have to rebuild the connection manually.
At 11:18 p.m., the upload reached 100 percent.
The client portal displayed the processing screen.
That was the result I had needed since dinner: not an impressive speed-test number, but one completed upload.
The service uses an HTTP/3-based transport built to handle changing network paths. When the laptop moved from hotel Wi-Fi to mobile data, the connection recovered instead of forcing the entire session to begin again. (IETF)
The progress bar made the advantage clearer than a protocol diagram could.
Recovery mattered more than the highest starting speed
The established provider often looked faster immediately after I reconnected.
The smaller app was more useful after the network became difficult.
That changed the comparison.
A speed test captures a short moment. It may measure the hotel before the evening crowd arrives, the server before demand increases, or the connection before packet loss forces it to slow down.
A long upload asks what happens next.
Can the tunnel recover when the Wi-Fi becomes crowded? Can it survive a weak signal? Can it continue when the device moves to mobile data?
The smaller app did not make the hotel network perfect.
It stopped the hotel’s imperfections from destroying the task.
The project portal became quieter afterward
Once the upload entered processing, I opened the client’s review page to check whether the correct file had arrived.
The app’s blocked-request counter increased.
The portal was contacting advertising and tracking services beyond the upload and review tools I had intentionally opened. Some of those requests were filtered before they completed.
I could see the counter changing, but I could not inspect the service’s internal filtering rules or determine the purpose of every blocked request.
The filtering had not rescued the upload. The connection recovery had already completed the main task.
It solved a smaller problem afterward.
On a network where bandwidth was scarce, fewer unnecessary background requests meant less unrelated traffic competing with the work I was trying to finish.
The file had arrived.
The pages around it also felt lighter.
The best first five minutes were not the best connection
The smaller service has fewer server locations, a shorter public history, and fewer independent ratings than the established provider.
Someone who needs a precise exit city may still prefer the larger network.
My deadline did not depend on a city.
It depended on whether one connection could survive the hotel’s evening slowdown and the switch to mobile data.
The established provider repeatedly gave me excellent starts followed by stalled transfers. The smaller app began without the most dramatic number and completed the file.
The VPN had not simply become tired after a few hours.
The network had changed, and the first tunnel had failed to change with it.
For a long upload, the performance that mattered was not how fast the connection began. It was whether the progress bar was still moving after the easy part of the evening was over.
Questions this experience may leave you with
What was actually causing the problem?
I could disconnect the VPN and upload directly. That would be faster, but it would place the client portal, account session, and destination outside the encrypted tunnel on a hotel network I did not control.
Why did the obvious fixes fail?
Travellers describe the pattern in blunt terms: the VPN works normally at home, then becomes slow or unstable on hotel Wi-Fi. ( Reddit ) (Reddit)
What should you check first?
That was why the VPN had seemed excellent at check-in. I had judged it by the first few minutes, before the evening traffic arrived.
What finally changed the result?
The portal was contacting advertising and tracking services beyond the upload and review tools I had intentionally opened. Some of those requests were filtered before they completed.
What is worth remembering?
For a long upload, the performance that mattered was not how fast the connection began. It was whether the progress bar was still moving after the easy part of the evening was over.