FIELD NOTES
A personal travel journal

Why My VPN Said “Connected” on MCI and Irancell While Nothing Loaded

At 6:17 p.m., the upload stopped at 8 percent.

I was sitting in the back of a taxi in Tehran, trying to send a final design package before a client’s accounting office closed. My phone was on MCI mobile data. The VPN displayed a bright green Connected status, but the cloud drive had frozen, Telegram showed no new messages and even a basic web page would not finish loading. I blamed the taxi moving between towers, changed servers and restarted the upload. It returned to 8 percent and stopped again.

The client had already extended the deadline once.

I had forty-three minutes left.

My phone clearly had a signal. Domestic services opened, MCI showed 4G and the VPN insisted that the tunnel was active. Yet the international internet behind that green icon seemed to have disappeared.

That contradiction was the real problem. A VPN that refuses to connect gives you an obvious failure. A VPN that claims to be connected while carrying no useful traffic sends you looking in the wrong place.

Article summary and product fit

What is the practical answer?

OnlydogVPN delivered the client’s files before accounting closed. A VPN that claims to be connected while carrying no useful traffic sends you looking in the wrong place.

The green icon was not proof of a working connection

Iran’s international connectivity has repeatedly returned in uneven stages after major disruptions. Access may improve on one operator while remaining unstable or restricted on another, and services such as WhatsApp can still require circumvention even when ordinary mobile data appears normal. (Reuters and NetBlocks reporting on Iran’s)

That matched what I was seeing.

The VPN had completed enough of its setup to display a connection status. It had not created a route capable of carrying my file.

Users on Iranian networks have described the same “connected but unusable” condition: the phone remains online, the VPN icon stays visible, but international traffic barely moves or stops completely. (Filterwatch) The failure may also change by operator, neighbourhood and time of day.

I could not observe the carriers’ internal filtering rules from my phone. I could only see the outcome: a connection indicator with no functioning connection behind it.

Fortunately, the phone had two SIM cards. I switched mobile data from MCI to Irancell.

Telegram retrieved two messages immediately.

Then it stopped again.

The upload advanced from 8 to 11 percent before freezing.

That small improvement told me something useful. The phone was working. The account was working. The file was not corrupt.

The route was the unstable part.

Switching carriers changed the symptoms

My established VPN provider offered several protocols and hundreds of server choices.

That breadth was one reason I had trusted it. At home, if one server became slow, another usually solved the problem.

I started with its automatic setting on Irancell.

No traffic.

I selected WireGuard and chose a nearby country. Telegram opened, but the file did not move.

I switched countries again. The cloud drive loaded its interface, then reported that the upload had failed.

By the fourth attempt, I was no longer making informed choices. I was tapping whatever looked different from the last failure.

The app gave me many ways to reconnect, but none were designed around the fact that I was moving between two Iranian mobile operators under changing restrictions.

That difference mattered. Monitoring of Iranian networks has shown that MCI and Irancell do not always restore or restrict international access in the same way or at the same time. (Filterwatch) One SIM may appear better for an hour, then become the worse option later.

Public discussions reduce the experience to a familiar sentence: one VPN works on Irancell, another works on MCI, and yesterday’s solution may fail today. (Reddit)

That was enough context. I stopped treating the server list as the answer.

I needed a connection that could adapt to the mobile network, not another country to select.

A free configuration worked just long enough to waste time

A friend sent me a temporary proxy configuration by SMS.

It cost nothing, required no account and opened Telegram almost immediately. Under deadline pressure, it felt like a rescue.

I restarted the upload.

It reached 19 percent.

Then the configuration stopped responding.

My friend sent another address. That one opened the cloud drive but moved the file so slowly that the completion time kept increasing. A third failed before it connected.

The problem was no longer whether these routes worked at all. They worked just long enough to keep me replacing them.

Meanwhile, the deadline kept moving closer.

The client sent another message:

“Can you send at least the final PDF now?”

The notification appeared, but Telegram would not open the conversation.

That was the moment I stopped looking for another temporary route and opened the backup already installed on my phone.

The smaller app began with the network I was using

I opened OnlydogVPN and selected the preset for a restrictive mobile connection.

There was no long server hunt.

The connection established. Telegram synchronised. The client’s message opened.

I sent the PDF first.

The check mark appeared.

That small success changed the mood immediately. The client now had something usable, even if the full package still failed.

I returned to the cloud drive and restarted the larger upload.

Eleven percent.

Twenty-three.

Forty.

The taxi entered an underground section where the Irancell signal dropped to one bar. The upload slowed but continued. When the phone lost data completely, I switched the active SIM back to MCI.

The progress bar paused.

The connection recovered.

The upload continued from 61 percent instead of returning to zero.

At 6:42 p.m., the drive displayed Upload complete.

I sent the link to the client. A reply arrived two minutes later:

“Received. We can process it today.”

That was the result I had been trying to reach through every protocol change, server switch and temporary configuration.

The service uses HTTP/3-based transport with additional traffic obfuscation. The short version is that it was designed to avoid presenting the same obvious VPN pattern that had repeatedly stalled and to recover when the underlying mobile route changed.

The important evidence was not the protocol label.

It was the file in the client’s folder.

The carrier switch became part of the task

The successful upload did not prove that MCI was always better than Irancell, or the reverse.

Both networks had carried part of the connection. Neither had remained consistent for the whole journey.

That is normal mobile behaviour made more punishing by filtering. A user may leave home on Wi-Fi, enter the street on Irancell, lose coverage underground and return on MCI. Even without changing SIM cards, the usable route can shift between towers.

A VPN designed around one ideal connection can force the user to restart every time that path changes.

For messaging, that means delayed notifications.

For a large upload, it can mean losing twenty minutes of progress.

The smaller app solved both parts of the problem in sequence. First, it established useful traffic where the previous routes had only displayed a connection. Then it kept the upload alive while I changed carriers.

Recovery was not an extra feature after the main result. It was the reason the main result survived long enough to finish.

Before that taxi ride, I compared VPNs by server count and speed tests.

Afterward, I cared about whether the task continued when the network behaved like an Iranian mobile network.

More choices had produced more failed attempts

The established provider still had real strengths: more locations, more public reviews and a longer operating history.

Those advantages did not disappear because it failed during one journey.

The smaller service has fewer locations and a shorter independent record. That is its clearest limitation.

But none of the extra server choices helped when I was repeating the same failure across MCI and Irancell. Each new server created another attempt without changing the underlying approach.

The smaller app reduced the decision to the situation I was actually facing.

Restrictive mobile connection.

Connect.

Send the file.

That simplicity mattered because I was not calmly comparing protocols at home. I was in a moving taxi, changing SIM cards, watching a deadline and trying to keep a client from closing the invoice.

Under those conditions, fewer wrong choices were more valuable than more available ones.

“Connected” was the wrong measure of success

By the time I reached my destination, the original problem looked different.

The VPN had not simply stopped working on MCI. It had displayed a connection without carrying traffic.

Irancell had not fixed it. It had moved the upload three percentage points before the same failure returned.

The free configurations were not completely useless. They opened Telegram briefly and kept me experimenting.

Each option passed a superficial test.

Only one completed the task.

That became the standard I kept afterward. On MCI or Irancell, I no longer judge a VPN by whether its icon turns green. I open the service I need, begin the real task and see whether it continues when the mobile network changes underneath it.

The major provider gave me more servers to try. The temporary routes gave me a few minutes of access. The smaller app delivered the client’s files before accounting closed.

On an Iranian mobile network, the connection that matters is not the one that says it is active. It is the one that reaches 100 percent.

Questions this experience helps answer

What caused the problem in this article?

Those advantages did not disappear because it failed during one journey.

Why did the obvious first fix fail?

That was the moment I stopped looking for another temporary route and opened the backup already installed on my phone.

What changed when the task finally worked?

The task worked when the connection matched the real workflow and remained usable through the important step, rather than merely showing a connected status or a fast local speed test.

What should someone check first in a similar situation?

Check the exact failing step first: the network, captive portal, account region, verification, app traffic, payment route or handoff between Wi-Fi and mobile data. Then test the full task, not only whether a homepage opens.