Preflight Checklist
Pear Desktop (Application) Version
3.12.0
Checklists
What operating system are you using?
Windows
Operating System Version
Windows 11
What CPU architecture are you using?
x64
Last Known Working Pear Desktop (Application) version
No response
Reproduction steps
- Open the Pear Desktop application (YouTube-Music-3.12.0.exe) on a PC inside a region with strict ISP censorship/DPI blocks (like Russia).
- The application flashes a white screen and falls into error.html immediately.
- Open DevTools (Ctrl+Shift+I) -> Network tab: the request to ://music.youtube.com fails instantly with net::ERR_NAME_NOT_RESOLVED.
Expected Behavior
The app should either fallback to a Secure DNS (DNS over HTTPS / DoH) mechanism or bypass internal network connectivity checks when Chromium CLI arguments are passed via standard shortcuts or environment variables. The main process should not silently fail at the host resolution level.
Actual Behavior
The app fails to load the interface and locks down immediately. It displays a local error page (error.html) stating "Cannot load Pear Desktop… Internet disconnected?".
In the DevTools Console/Network tab, the initial connection to ://youtube.com fails in 36-77ms with 'net::ERR_NAME_NOT_RESOLVED'. The application ignores standard Chromium CLI switches like --disable-quic and DoH configurations because it seems to run temporary child processes out of AppData/Local/Temp.
Enabled plugins
Additional Information
I am using a transparent DPI bypass tool common in Russia called 'zapret' (it functions similarly to GoodbyeDPI or GreenTunnel by modifying packets on the fly via the WinDivert network driver). My regular browsers handle this perfectly because they use secure DNS-over-HTTPS (DoH).
However, we diagnosed that Pear Desktop strictly falls back to the system's broken/censored UDP DNS resolver, bypassing the transparent DPI filter at the host resolution level before packets even reach the network driver properly. This triggers the instant 'NAME_NOT_RESOLVED' crash.
We attempted to pass standard Chromium arguments via shortcuts, batch files, and environment variables (such as --disable-quic, --enable-features=DnsOverHttps, --use-cmd-fast-dns-name-server=..., and --host-resolver-rules="..."). None of them worked.
The console logs revealed that the application extracts and runs temporary child processes out of 'AppData\Local\Temp' (e.g., AppData\Local\Temp\3Flqvx[and bla bla bla]RagdTB/resources/app.asar/). This architecture isolates the runtime environment, meaning any external command-line switches or variables passed to the main launcher are completely stripped or ignored by the actual rendering window.
Is there any configuration file, specific environment variable, or internal patch to the main process script that can permanently force DoH or hardcode custom host mapping before the initial connectivity check kicks in?
Environment:
- OS: Windows
- App Version: 3.12.0
- Region: Russia (with deep packet inspection filtering)
P.S. To clarify, this is strictly an application-level bug within Pear Desktop's Electron/Chromium networking stack. Every other major game and app on my PC—including Roblox, Fortnite, Discord, and multiplayer services—works flawlessly with my 'zapret' configuration.
The issue is that Pear Desktop handles network initialization in an extremely rigid way. If Chromium encounters a primitive DNS error or takes more than a few milliseconds to resolve ://youtube.com, the app immediately intercepts this as a total network blackout and halts the entire render process. Please consider implementing a toggle to disable the strict internet connectivity check, or allow the app to natively respect environment network variables without stripping them in the Temp directory.
Preflight Checklist
Pear Desktop (Application) Version
3.12.0
Checklists
What operating system are you using?
Windows
Operating System Version
Windows 11
What CPU architecture are you using?
x64
Last Known Working Pear Desktop (Application) version
No response
Reproduction steps
Expected Behavior
The app should either fallback to a Secure DNS (DNS over HTTPS / DoH) mechanism or bypass internal network connectivity checks when Chromium CLI arguments are passed via standard shortcuts or environment variables. The main process should not silently fail at the host resolution level.
Actual Behavior
The app fails to load the interface and locks down immediately. It displays a local error page (error.html) stating "Cannot load Pear Desktop… Internet disconnected?".
In the DevTools Console/Network tab, the initial connection to ://youtube.com fails in 36-77ms with 'net::ERR_NAME_NOT_RESOLVED'. The application ignores standard Chromium CLI switches like --disable-quic and DoH configurations because it seems to run temporary child processes out of AppData/Local/Temp.
Enabled plugins
Additional Information
I am using a transparent DPI bypass tool common in Russia called 'zapret' (it functions similarly to GoodbyeDPI or GreenTunnel by modifying packets on the fly via the WinDivert network driver). My regular browsers handle this perfectly because they use secure DNS-over-HTTPS (DoH).
However, we diagnosed that Pear Desktop strictly falls back to the system's broken/censored UDP DNS resolver, bypassing the transparent DPI filter at the host resolution level before packets even reach the network driver properly. This triggers the instant 'NAME_NOT_RESOLVED' crash.
We attempted to pass standard Chromium arguments via shortcuts, batch files, and environment variables (such as
--disable-quic,--enable-features=DnsOverHttps,--use-cmd-fast-dns-name-server=..., and--host-resolver-rules="..."). None of them worked.The console logs revealed that the application extracts and runs temporary child processes out of 'AppData\Local\Temp' (e.g., AppData\Local\Temp\3Flqvx[and bla bla bla]RagdTB/resources/app.asar/). This architecture isolates the runtime environment, meaning any external command-line switches or variables passed to the main launcher are completely stripped or ignored by the actual rendering window.
Is there any configuration file, specific environment variable, or internal patch to the main process script that can permanently force DoH or hardcode custom host mapping before the initial connectivity check kicks in?
Environment:
P.S. To clarify, this is strictly an application-level bug within Pear Desktop's Electron/Chromium networking stack. Every other major game and app on my PC—including Roblox, Fortnite, Discord, and multiplayer services—works flawlessly with my 'zapret' configuration.
The issue is that Pear Desktop handles network initialization in an extremely rigid way. If Chromium encounters a primitive DNS error or takes more than a few milliseconds to resolve ://youtube.com, the app immediately intercepts this as a total network blackout and halts the entire render process. Please consider implementing a toggle to disable the strict internet connectivity check, or allow the app to natively respect environment network variables without stripping them in the Temp directory.