# OLM Status:
Unable to get status via pipe. Is the tunnel service running?
Expected Behavior
Expected behavior
The resource should be reachable via the alias from the Pangolin Client.
Actual behavior
The connection fails when using the alias.
Accessing the resource directly by IP does not work either when it is defined with an alias in the private resource configuration.
Originally created by @moodiness on GitHub (Dec 18, 2025).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/2115
### Describe the Bug
### Description
Hi,
I’m having an issue when trying to configure a **private resource** using the IP address of my **Unraid server** and assigning it an **alias** in Pangolin.
My goal is to access this resource via the **Pangolin Client** using the alias, but it does not work as expected.
### What I’m trying to do
* Add my Unraid server IP (e.g. `192.168.1.x`) as a **private resource**
* Define an **alias** for this resource
* Access the resource using this alias from the Pangolin Client
### Environment
- OS Type & Version: Unraid 7.2.2 & Windows 11 25H2 & macOS Tahoe 26
- Pangolin Version: 1.13.1
- Gerbil Version: 1.3.0
- Traefik Version: 1.3.5
- Newt Version: 1.7.0
### To Reproduce
<img width="813" height="1069" alt="Image" src="https://github.com/user-attachments/assets/eb0f0d8c-d272-4253-8fd8-eeb36f041296" />
```
# OLM Status:
{
"connected": true,
"registered": false,
"terminated": false,
"version": "0.1.1",
"orgId": "privateOrgId"
}
```
and then it shows me this in the logs:
<img width="1157" height="675" alt="Image" src="https://github.com/user-attachments/assets/0e785c56-0574-4c6d-89e4-30bac9450213" />
```
# OLM Status:
Unable to get status via pipe. Is the tunnel service running?
```
### Expected Behavior
### Expected behavior
The resource should be reachable via the alias from the Pangolin Client.
### Actual behavior
The connection fails when using the alias.
Accessing the resource directly by IP does not work either when it is defined with an alias in the private resource configuration.
@moodiness you have to specify the port the service you are trying to access is on.
Ex: 192.168.1.50:3000 unraid.home:8080
<!-- gh-comment-id:3673013573 -->
@keonramses commented on GitHub (Dec 19, 2025):
@moodiness you have to specify the port the service you are trying to access is on.
Ex: 192.168.1.50:3000 unraid.home:8080
@keonramses
Personally I have already tried it but it does not work either
even another container with that port does not work
<!-- gh-comment-id:3673033633 -->
@Dyhlio commented on GitHub (Dec 19, 2025):
@keonramses
Personally I have already tried it but it does not work either
even another container with that port does not work
@moodiness you have to specify the port the service you are trying to access is on.
Ex: 192.168.1.50:3000 unraid.home:8080
Hey thanks for your comment but I know and it's still doesn't work, I have tried 3/4 containers so ip:port and same result :/
<!-- gh-comment-id:3674831626 -->
@moodiness commented on GitHub (Dec 19, 2025):
> [@moodiness](https://github.com/moodiness) you have to specify the port the service you are trying to access is on.
>
> Ex: 192.168.1.50:3000 unraid.home:8080
Hey thanks for your comment but I know and it's still doesn't work, I have tried 3/4 containers so ip:port and same result :/
When you click Connect, could you watch Task Manager and see whether the tunnel service starts?
When disconnected, you should see two Pangolin processes. After clicking Connect, a third process (the tunnel service) should spawn. My suspicion is that this process isn’t being created for some reason.
Also, please keep an eye on the logs when you click Connect and try to capture the output at that moment. That information will be very helpful for debugging. Without it, we don’t have enough detail to track down the issue.
<!-- gh-comment-id:3677310192 -->
@miloschwartz commented on GitHub (Dec 20, 2025):
When you click Connect, could you watch Task Manager and see whether the tunnel service starts?
When disconnected, you should see two Pangolin processes. After clicking Connect, a third process (the tunnel service) should spawn. My suspicion is that this process isn’t being created for some reason.
Also, please keep an eye on the logs when you click Connect and try to capture the output at that moment. That information will be very helpful for debugging. Without it, we don’t have enough detail to track down the issue.
When you click Connect, could you watch Task Manager and see whether the tunnel service starts?
When disconnected, you should see two Pangolin processes. After clicking Connect, a third process (the tunnel service) should spawn. My suspicion is that this process isn’t being created for some reason.
Also, please keep an eye on the logs when you click Connect and try to capture the output at that moment. That information will be very helpful for debugging. Without it, we don’t have enough detail to track down the issue.
Not connected:
Connected:
Logs:
2025-12-20 11:59:22.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 11:59:22.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 11:59:22.000 [INFO] Cannot access service manager without admin privileges
2025-12-20 11:59:22.000 [INFO] Attempting to install/start manager service (will show UAC prompt)...
2025-12-20 11:59:22.000 [INFO] Elevate: ShellExecute called - program: C:\Program Files\Pangolin\Pangolin.exe, args: /installmanagerservice
2025-12-20 11:59:23.000 [INFO] Elevate: ShellExecute succeeded
2025-12-20 11:59:23.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 11:59:23.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 11:59:23.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 11:59:23.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 11:59:23.000 [INFO] Starting as manager service
2025-12-20 11:59:23.000 [INFO] Manager service installed successfully
2025-12-20 11:59:23.000 [INFO] Pangolin Manager service starting
2025-12-20 11:59:23.000 [INFO] Starting UI process for user 'Admin@DESKTOP-XXXXXXX' for session 1
2025-12-20 11:59:23.000 [INFO] Updater: CheckForUpdate() called
2025-12-20 11:59:23.000 [INFO] Updater: checkForUpdate() started (keepSession=false)
2025-12-20 11:59:23.000 [INFO] Updater: Current version: 0.1.1, Architecture: amd64
2025-12-20 11:59:23.000 [INFO] Updater: Creating WinHTTP session with User-Agent: Pangolin/0.1.1 (Windows 10.0.26200; amd64)
2025-12-20 11:59:23.000 [INFO] Updater: WinHTTP session created successfully
2025-12-20 11:59:23.000 [INFO] Updater: Connecting to update server: static.pangolin.net:443 (HTTPS=true)
2025-12-20 11:59:23.000 [INFO] Updater: Connected to update server successfully
2025-12-20 11:59:23.000 [INFO] Updater: Fetching manifest from: /windows-client/latest.sig
2025-12-20 11:59:23.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 11:59:23.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 11:59:23.000 [INFO] Connected to manager service via IPC
2025-12-20 11:59:23.000 [INFO] APIClient initialized with baseURL: https://pangolin.domain.com
2025-12-20 11:59:23.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user
2025-12-20 11:59:23.000 [INFO] Updater: Manifest response received
2025-12-20 11:59:23.000 [INFO] Updater: Read 318 bytes from manifest
2025-12-20 11:59:23.000 [INFO] Updater: Parsing manifest file list
2025-12-20 11:59:23.000 [INFO] Updater: Parsing signed file list (input size: 318 bytes)
2025-12-20 11:59:23.000 [INFO] Updater: Decoding public key from base64
2025-12-20 11:59:23.000 [INFO] Updater: Public key decoded successfully (length: 42)
2025-12-20 11:59:23.000 [INFO] Updater: Manifest has 3 lines as expected
2025-12-20 11:59:23.000 [INFO] Updater: Untrusted comment found: untrusted comment: verify with release.pub
2025-12-20 11:59:23.000 [INFO] Updater: Decoding signature from base64
2025-12-20 11:59:23.000 [INFO] Updater: Signature decoded (length: 74)
2025-12-20 11:59:23.000 [INFO] Updater: Signature format valid, verifying...
2025-12-20 11:59:23.000 [INFO] Updater: ✓ Ed25519 signature verified successfully
2025-12-20 11:59:23.000 [INFO] Updater: Parsing 2 file hash lines
2025-12-20 11:59:23.000 [INFO] Updater: Parsed file entry: pangolin-amd64-0.1.1.msi (hash: b1c84c78c7d981f5d2a980409d3fc9a8c35afda6b37c407580a20456c7a999ba, location: https://github.com/fosrl/windows/releases/download/0.1.1/pangolin-amd64-0.1.1.msi)
2025-12-20 11:59:23.000 [INFO] Updater: Skipping empty last line
2025-12-20 11:59:23.000 [INFO] Updater: Successfully parsed 1 file entries from manifest
2025-12-20 11:59:23.000 [INFO] Updater: Manifest parsed successfully, found 1 files
2025-12-20 11:59:23.000 [INFO] Updater: Searching for update candidate
2025-12-20 11:59:23.000 [INFO] Updater: findCandidate() - Current version: 0.1.1, Architecture: amd64
2025-12-20 11:59:23.000 [INFO] Updater: Looking for files matching prefix: pangolin-amd64-, suffix: .msi
2025-12-20 11:59:23.000 [INFO] Updater: Total files in manifest: 1
2025-12-20 11:59:23.000 [INFO] Updater: Manifest contains file: pangolin-amd64-0.1.1.msi
2025-12-20 11:59:23.000 [INFO] Updater: Checking file: pangolin-amd64-0.1.1.msi
2025-12-20 11:59:23.000 [INFO] Updater: File pangolin-amd64-0.1.1.msi - hasPrefix(pangolin-amd64-): true, hasSuffix(.msi): true
2025-12-20 11:59:23.000 [INFO] Updater: File matches pattern! Extracted version: 0.1.1
2025-12-20 11:59:23.000 [INFO] Updater: Comparing candidate version 0.1.1 with current version 0.1.1
2025-12-20 11:59:23.000 [INFO] Updater: Comparing versions - candidate: 0.1.1, current: 0.1.1
2025-12-20 11:59:23.000 [INFO] Updater: Candidate parts: [0 1 1], Current parts: [0 1 1]
2025-12-20 11:59:23.000 [INFO] Updater: Comparing 3 version components
2025-12-20 11:59:23.000 [INFO] Updater: Component 0 - candidate: 0, current: 0
2025-12-20 11:59:23.000 [INFO] Updater: Component 0 matches, continuing
2025-12-20 11:59:23.000 [INFO] Updater: Component 1 - candidate: 1, current: 1
2025-12-20 11:59:23.000 [INFO] Updater: Component 1 matches, continuing
2025-12-20 11:59:23.000 [INFO] Updater: Component 2 - candidate: 1, current: 1
2025-12-20 11:59:23.000 [INFO] Updater: Component 2 matches, continuing
2025-12-20 11:59:23.000 [INFO] Updater: All components match - candidate is not newer
2025-12-20 11:59:23.000 [INFO] Updater: Version comparison result - 0.1.1 is newer than 0.1.1: false
2025-12-20 11:59:23.000 [INFO] Updater: Candidate version 0.1.1 is not newer, skipping
2025-12-20 11:59:23.000 [INFO] Updater: No update candidate found after checking all 1 files
2025-12-20 11:59:23.000 [INFO] Updater: No update candidate found
2025-12-20 11:59:23.000 [INFO] Updater: Closing connection
2025-12-20 11:59:23.000 [INFO] Updater: Closing WinHTTP session
2025-12-20 11:59:23.000 [INFO] Updater: CheckForUpdate completed - no update found
2025-12-20 11:59:23.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/orgs
2025-12-20 11:59:23.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/olm/xymmg1hnggof2zb
2025-12-20 11:59:23.000 [INFO] OLM credentials verified successfully
2025-12-20 11:59:23.000 [INFO] Connected to manager service - update checking handled by manager
2025-12-20 11:59:59.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user
2025-12-20 11:59:59.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/orgs
2025-12-20 11:59:59.000 [INFO] Organizations refreshed successfully: 1 orgs
2025-12-20 11:59:59.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/org/domain
2025-12-20 12:00:00.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/olm/xymmg1hnggof2zb
2025-12-20 12:00:00.000 [INFO] OLM credentials verified successfully
2025-12-20 12:00:00.000 [INFO] Connecting tunnel with config: Name=olm, Endpoint=https://pangolin.domain.com
2025-12-20 12:00:00.000 [INFO] Tunnel: StartTunnel called
2025-12-20 12:00:00.000 [INFO] Tunnel: Starting tunnel with config
2025-12-20 12:00:00.000 [INFO] Tunnel state changed: registering
2025-12-20 12:00:00.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 12:00:00.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 12:00:00.000 [INFO] Starting as tunnel service with config: C:\ProgramData\Pangolin\Tunnels\olm.json
2025-12-20 12:00:00.000 [INFO] Tunnel service: Starting with config
2025-12-20 12:00:00.000 [INFO] Tunnel service: Running as Windows service
2025-12-20 12:00:00.000 [INFO] Tunnel state changed: registering
2025-12-20 12:00:00.000 [INFO] Tunnel service: Service starting
2025-12-20 12:00:00.000 [DEBUG] Build tunnel called: config: {Name:olm Endpoint:https://pangolin.domain.com ID:xymmg1hnggof2zb Secret:<private_secret_key> MTU:1280 DNS:1.1.1.1 Holepunch:true PingIntervalSeconds:5 PingTimeoutSeconds:5 UserToken:<private_user_token> OrgID:domain InterfaceName:Pangolin UpstreamDNS:[1.1.1.1:53] OverrideDNS:false}
2025-12-20 12:00:00.000 [DEBUG] Checking permissions for native interface
2025-12-20 12:00:00.000 [INFO] Starting status polling
2025-12-20 12:00:00.000 [INFO] Started OLM status polling (every 1 second)
2025-12-20 12:00:00.000 [DEBUG] Created named pipe at \\.\pipe\pangolin-olm with write access for everyone
2025-12-20 12:00:00.000 [INFO] Starting HTTP server on socket \\.\pipe\pangolin-olm
2025-12-20 12:00:00.000 [INFO] Starting OLM tunnel...
2025-12-20 12:00:00.000 [DEBUG] Build tunnel completed successfully
2025-12-20 12:00:00.000 [DEBUG] Starting tunnel with config: {Endpoint:https://pangolin.domain.com ID:xymmg1hnggof2zb Secret:<private_secret_key> UserToken:<private_user_token> MTU:1280 DNS:1.1.1.1 UpstreamDNS:[1.1.1.1:53] InterfaceName:Pangolin Holepunch:true TlsClientCert: PingIntervalDuration:5s PingTimeoutDuration:5s OrgID:domain FileDescriptorTun:0 FileDescriptorUAPI:0 EnableUAPI:false OverrideDNS:false DisableRelay:false}
2025-12-20 12:00:00.000 [INFO] Created shared UDP socket on port 56005 (refcount: 2)
2025-12-20 12:00:00.000 [DEBUG] Requesting token from https://pangolin.domain.com/api/v1/auth/olm/get-token with body: {"olmId":"xymmg1hnggof2zb","orgId":"domain","secret":"<private_secret_key>"}
2025-12-20 12:00:00.000 [DEBUG] Received token: <private_token>
2025-12-20 12:00:00.000 [DEBUG] Got exit nodes for hole punching: [{pangolin.domain.com tx5XO/<private_node>}]
2025-12-20 12:00:00.000 [DEBUG] Updated hole punch exit nodes: [{pangolin.domain.com tx5XO/<private_node>}]
2025-12-20 12:00:00.000 [INFO] Starting hole punch for 1 exit nodes
2025-12-20 12:00:00.000 [INFO] Starting UDP hole punch to 1 exit nodes with shared bind
2025-12-20 12:00:00.000 [INFO] Resolved exit node: pangolin.domain.com -> <private_vps_ip>:21820
2025-12-20 12:00:00.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:00.000 [INFO] Websocket Connected
2025-12-20 12:00:01.000 [INFO] Tunnel state changed: running
2025-12-20 12:00:01.000 [DEBUG] Sending registration message to server with public key: <private_public_key> and relay: false
2025-12-20 12:00:01.000 [DEBUG] Sending message: olm/ping, data: map[timestamp:1766228401 userToken:<private_user_token>]
2025-12-20 12:00:01.000 [DEBUG] Sent ping message
2025-12-20 12:00:01.000 [INFO] Tunnel: OLM registered
2025-12-20 12:00:01.000 [INFO] Sent initial ping message
2025-12-20 12:00:01.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:01.000 [DEBUG] Received pong message
2025-12-20 12:00:01.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:01.000 [DEBUG] Increased hole punch interval to 2s
2025-12-20 12:00:02.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:03.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:03.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:03.000 [DEBUG] Increased hole punch interval to 4s
2025-12-20 12:00:04.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:05.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:06.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:07.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:07.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:07.000 [DEBUG] Increased hole punch interval to 8s
2025-12-20 12:00:08.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:09.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:10.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:11.000 [INFO] SendMessageInterval timed out after 10 attempts for message type: olm/wg/register
2025-12-20 12:00:15.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:15.000 [DEBUG] Increased hole punch interval to 16s
2025-12-20 12:00:17.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user
2025-12-20 12:00:17.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/orgs
2025-12-20 12:00:18.000 [INFO] Organizations refreshed successfully: 1 orgs
2025-12-20 12:00:18.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user
2025-12-20 12:00:18.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/orgs
2025-12-20 12:00:18.000 [INFO] Organizations refreshed successfully: 1 orgs
2025-12-20 12:00:31.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:31.000 [DEBUG] Increased hole punch interval to 32s
<!-- gh-comment-id:3677735512 -->
@moodiness commented on GitHub (Dec 20, 2025):
> When you click Connect, could you watch Task Manager and see whether the tunnel service starts?
>
> When disconnected, you should see two Pangolin processes. After clicking Connect, a third process (the tunnel service) should spawn. My suspicion is that this process isn’t being created for some reason.
>
> Also, please keep an eye on the logs when you click Connect and try to capture the output at that moment. That information will be very helpful for debugging. Without it, we don’t have enough detail to track down the issue.
Not connected:
<img width="858" height="668" alt="Image" src="https://github.com/user-attachments/assets/5d48ac3a-5abd-45de-a6cf-66f277dfff86" />
Connected:
<img width="858" height="668" alt="Image" src="https://github.com/user-attachments/assets/e3cf5eb7-a279-489c-b5f7-b92b9a9615f3" />
Logs:
```
2025-12-20 11:59:22.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 11:59:22.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 11:59:22.000 [INFO] Cannot access service manager without admin privileges
2025-12-20 11:59:22.000 [INFO] Attempting to install/start manager service (will show UAC prompt)...
2025-12-20 11:59:22.000 [INFO] Elevate: ShellExecute called - program: C:\Program Files\Pangolin\Pangolin.exe, args: /installmanagerservice
2025-12-20 11:59:23.000 [INFO] Elevate: ShellExecute succeeded
2025-12-20 11:59:23.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 11:59:23.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 11:59:23.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 11:59:23.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 11:59:23.000 [INFO] Starting as manager service
2025-12-20 11:59:23.000 [INFO] Manager service installed successfully
2025-12-20 11:59:23.000 [INFO] Pangolin Manager service starting
2025-12-20 11:59:23.000 [INFO] Starting UI process for user 'Admin@DESKTOP-XXXXXXX' for session 1
2025-12-20 11:59:23.000 [INFO] Updater: CheckForUpdate() called
2025-12-20 11:59:23.000 [INFO] Updater: checkForUpdate() started (keepSession=false)
2025-12-20 11:59:23.000 [INFO] Updater: Current version: 0.1.1, Architecture: amd64
2025-12-20 11:59:23.000 [INFO] Updater: Creating WinHTTP session with User-Agent: Pangolin/0.1.1 (Windows 10.0.26200; amd64)
2025-12-20 11:59:23.000 [INFO] Updater: WinHTTP session created successfully
2025-12-20 11:59:23.000 [INFO] Updater: Connecting to update server: static.pangolin.net:443 (HTTPS=true)
2025-12-20 11:59:23.000 [INFO] Updater: Connected to update server successfully
2025-12-20 11:59:23.000 [INFO] Updater: Fetching manifest from: /windows-client/latest.sig
2025-12-20 11:59:23.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 11:59:23.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 11:59:23.000 [INFO] Connected to manager service via IPC
2025-12-20 11:59:23.000 [INFO] APIClient initialized with baseURL: https://pangolin.domain.com
2025-12-20 11:59:23.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user
2025-12-20 11:59:23.000 [INFO] Updater: Manifest response received
2025-12-20 11:59:23.000 [INFO] Updater: Read 318 bytes from manifest
2025-12-20 11:59:23.000 [INFO] Updater: Parsing manifest file list
2025-12-20 11:59:23.000 [INFO] Updater: Parsing signed file list (input size: 318 bytes)
2025-12-20 11:59:23.000 [INFO] Updater: Decoding public key from base64
2025-12-20 11:59:23.000 [INFO] Updater: Public key decoded successfully (length: 42)
2025-12-20 11:59:23.000 [INFO] Updater: Manifest has 3 lines as expected
2025-12-20 11:59:23.000 [INFO] Updater: Untrusted comment found: untrusted comment: verify with release.pub
2025-12-20 11:59:23.000 [INFO] Updater: Decoding signature from base64
2025-12-20 11:59:23.000 [INFO] Updater: Signature decoded (length: 74)
2025-12-20 11:59:23.000 [INFO] Updater: Signature format valid, verifying...
2025-12-20 11:59:23.000 [INFO] Updater: ✓ Ed25519 signature verified successfully
2025-12-20 11:59:23.000 [INFO] Updater: Parsing 2 file hash lines
2025-12-20 11:59:23.000 [INFO] Updater: Parsed file entry: pangolin-amd64-0.1.1.msi (hash: b1c84c78c7d981f5d2a980409d3fc9a8c35afda6b37c407580a20456c7a999ba, location: https://github.com/fosrl/windows/releases/download/0.1.1/pangolin-amd64-0.1.1.msi)
2025-12-20 11:59:23.000 [INFO] Updater: Skipping empty last line
2025-12-20 11:59:23.000 [INFO] Updater: Successfully parsed 1 file entries from manifest
2025-12-20 11:59:23.000 [INFO] Updater: Manifest parsed successfully, found 1 files
2025-12-20 11:59:23.000 [INFO] Updater: Searching for update candidate
2025-12-20 11:59:23.000 [INFO] Updater: findCandidate() - Current version: 0.1.1, Architecture: amd64
2025-12-20 11:59:23.000 [INFO] Updater: Looking for files matching prefix: pangolin-amd64-, suffix: .msi
2025-12-20 11:59:23.000 [INFO] Updater: Total files in manifest: 1
2025-12-20 11:59:23.000 [INFO] Updater: Manifest contains file: pangolin-amd64-0.1.1.msi
2025-12-20 11:59:23.000 [INFO] Updater: Checking file: pangolin-amd64-0.1.1.msi
2025-12-20 11:59:23.000 [INFO] Updater: File pangolin-amd64-0.1.1.msi - hasPrefix(pangolin-amd64-): true, hasSuffix(.msi): true
2025-12-20 11:59:23.000 [INFO] Updater: File matches pattern! Extracted version: 0.1.1
2025-12-20 11:59:23.000 [INFO] Updater: Comparing candidate version 0.1.1 with current version 0.1.1
2025-12-20 11:59:23.000 [INFO] Updater: Comparing versions - candidate: 0.1.1, current: 0.1.1
2025-12-20 11:59:23.000 [INFO] Updater: Candidate parts: [0 1 1], Current parts: [0 1 1]
2025-12-20 11:59:23.000 [INFO] Updater: Comparing 3 version components
2025-12-20 11:59:23.000 [INFO] Updater: Component 0 - candidate: 0, current: 0
2025-12-20 11:59:23.000 [INFO] Updater: Component 0 matches, continuing
2025-12-20 11:59:23.000 [INFO] Updater: Component 1 - candidate: 1, current: 1
2025-12-20 11:59:23.000 [INFO] Updater: Component 1 matches, continuing
2025-12-20 11:59:23.000 [INFO] Updater: Component 2 - candidate: 1, current: 1
2025-12-20 11:59:23.000 [INFO] Updater: Component 2 matches, continuing
2025-12-20 11:59:23.000 [INFO] Updater: All components match - candidate is not newer
2025-12-20 11:59:23.000 [INFO] Updater: Version comparison result - 0.1.1 is newer than 0.1.1: false
2025-12-20 11:59:23.000 [INFO] Updater: Candidate version 0.1.1 is not newer, skipping
2025-12-20 11:59:23.000 [INFO] Updater: No update candidate found after checking all 1 files
2025-12-20 11:59:23.000 [INFO] Updater: No update candidate found
2025-12-20 11:59:23.000 [INFO] Updater: Closing connection
2025-12-20 11:59:23.000 [INFO] Updater: Closing WinHTTP session
2025-12-20 11:59:23.000 [INFO] Updater: CheckForUpdate completed - no update found
2025-12-20 11:59:23.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/orgs
2025-12-20 11:59:23.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/olm/xymmg1hnggof2zb
2025-12-20 11:59:23.000 [INFO] OLM credentials verified successfully
2025-12-20 11:59:23.000 [INFO] Connected to manager service - update checking handled by manager
2025-12-20 11:59:59.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user
2025-12-20 11:59:59.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/orgs
2025-12-20 11:59:59.000 [INFO] Organizations refreshed successfully: 1 orgs
2025-12-20 11:59:59.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/org/domain
2025-12-20 12:00:00.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/olm/xymmg1hnggof2zb
2025-12-20 12:00:00.000 [INFO] OLM credentials verified successfully
2025-12-20 12:00:00.000 [INFO] Connecting tunnel with config: Name=olm, Endpoint=https://pangolin.domain.com
2025-12-20 12:00:00.000 [INFO] Tunnel: StartTunnel called
2025-12-20 12:00:00.000 [INFO] Tunnel: Starting tunnel with config
2025-12-20 12:00:00.000 [INFO] Tunnel state changed: registering
2025-12-20 12:00:00.000 [INFO] Pangolin logging initialized - log file: C:\ProgramData\Pangolin\logs\pangolin.log, log level: debug
2025-12-20 12:00:00.000 [INFO] Pangolin version 0.1.1 starting
2025-12-20 12:00:00.000 [INFO] Starting as tunnel service with config: C:\ProgramData\Pangolin\Tunnels\olm.json
2025-12-20 12:00:00.000 [INFO] Tunnel service: Starting with config
2025-12-20 12:00:00.000 [INFO] Tunnel service: Running as Windows service
2025-12-20 12:00:00.000 [INFO] Tunnel state changed: registering
2025-12-20 12:00:00.000 [INFO] Tunnel service: Service starting
2025-12-20 12:00:00.000 [DEBUG] Build tunnel called: config: {Name:olm Endpoint:https://pangolin.domain.com ID:xymmg1hnggof2zb Secret:<private_secret_key> MTU:1280 DNS:1.1.1.1 Holepunch:true PingIntervalSeconds:5 PingTimeoutSeconds:5 UserToken:<private_user_token> OrgID:domain InterfaceName:Pangolin UpstreamDNS:[1.1.1.1:53] OverrideDNS:false}
2025-12-20 12:00:00.000 [DEBUG] Checking permissions for native interface
2025-12-20 12:00:00.000 [INFO] Starting status polling
2025-12-20 12:00:00.000 [INFO] Started OLM status polling (every 1 second)
2025-12-20 12:00:00.000 [DEBUG] Created named pipe at \\.\pipe\pangolin-olm with write access for everyone
2025-12-20 12:00:00.000 [INFO] Starting HTTP server on socket \\.\pipe\pangolin-olm
2025-12-20 12:00:00.000 [INFO] Starting OLM tunnel...
2025-12-20 12:00:00.000 [DEBUG] Build tunnel completed successfully
2025-12-20 12:00:00.000 [DEBUG] Starting tunnel with config: {Endpoint:https://pangolin.domain.com ID:xymmg1hnggof2zb Secret:<private_secret_key> UserToken:<private_user_token> MTU:1280 DNS:1.1.1.1 UpstreamDNS:[1.1.1.1:53] InterfaceName:Pangolin Holepunch:true TlsClientCert: PingIntervalDuration:5s PingTimeoutDuration:5s OrgID:domain FileDescriptorTun:0 FileDescriptorUAPI:0 EnableUAPI:false OverrideDNS:false DisableRelay:false}
2025-12-20 12:00:00.000 [INFO] Created shared UDP socket on port 56005 (refcount: 2)
2025-12-20 12:00:00.000 [DEBUG] Requesting token from https://pangolin.domain.com/api/v1/auth/olm/get-token with body: {"olmId":"xymmg1hnggof2zb","orgId":"domain","secret":"<private_secret_key>"}
2025-12-20 12:00:00.000 [DEBUG] Received token: <private_token>
2025-12-20 12:00:00.000 [DEBUG] Got exit nodes for hole punching: [{pangolin.domain.com tx5XO/<private_node>}]
2025-12-20 12:00:00.000 [DEBUG] Updated hole punch exit nodes: [{pangolin.domain.com tx5XO/<private_node>}]
2025-12-20 12:00:00.000 [INFO] Starting hole punch for 1 exit nodes
2025-12-20 12:00:00.000 [INFO] Starting UDP hole punch to 1 exit nodes with shared bind
2025-12-20 12:00:00.000 [INFO] Resolved exit node: pangolin.domain.com -> <private_vps_ip>:21820
2025-12-20 12:00:00.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:00.000 [INFO] Websocket Connected
2025-12-20 12:00:01.000 [INFO] Tunnel state changed: running
2025-12-20 12:00:01.000 [DEBUG] Sending registration message to server with public key: <private_public_key> and relay: false
2025-12-20 12:00:01.000 [DEBUG] Sending message: olm/ping, data: map[timestamp:1766228401 userToken:<private_user_token>]
2025-12-20 12:00:01.000 [DEBUG] Sent ping message
2025-12-20 12:00:01.000 [INFO] Tunnel: OLM registered
2025-12-20 12:00:01.000 [INFO] Sent initial ping message
2025-12-20 12:00:01.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:01.000 [DEBUG] Received pong message
2025-12-20 12:00:01.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:01.000 [DEBUG] Increased hole punch interval to 2s
2025-12-20 12:00:02.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:03.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:03.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:03.000 [DEBUG] Increased hole punch interval to 4s
2025-12-20 12:00:04.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:05.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:06.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:07.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:07.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:07.000 [DEBUG] Increased hole punch interval to 8s
2025-12-20 12:00:08.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:09.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:10.000 [DEBUG] Sending message: olm/wg/register, data: map[olmAgent:Pangolin Windows olmVersion:0.1.1 orgId:domain publicKey:<private_public_key> relay:false userToken:<private_user_token>]
2025-12-20 12:00:11.000 [INFO] SendMessageInterval timed out after 10 attempts for message type: olm/wg/register
2025-12-20 12:00:15.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:15.000 [DEBUG] Increased hole punch interval to 16s
2025-12-20 12:00:17.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user
2025-12-20 12:00:17.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/orgs
2025-12-20 12:00:18.000 [INFO] Organizations refreshed successfully: 1 orgs
2025-12-20 12:00:18.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user
2025-12-20 12:00:18.000 [INFO] Making request to: https://pangolin.domain.com/api/v1/user/XXXXXXXXXXXXXXXX/orgs
2025-12-20 12:00:18.000 [INFO] Organizations refreshed successfully: 1 orgs
2025-12-20 12:00:31.000 [DEBUG] Sent UDP hole punch to <private_vps_ip>:21820: {"ephemeralPublicKey":"<private_public_key>","nonce":"<private_nonce>","ciphertext":"<private_cipher_text>"}
2025-12-20 12:00:31.000 [DEBUG] Increased hole punch interval to 32s
```
The issue was caused by the installer installing an old version of OLM (v1.0.0) instead of the latest one (v1.2.0).
I fixed most of the problem by:
Uninstalling OLM
Uninstalling Pangolin
Reinstalling Pangolin, which installed the correct OLM version
After reinstalling, the connection works correctly using the IP address.
However, the alias still does not work when accessing the private resource from the Pangolin Client.
I’m closing this issue since the main problem is resolved, but the alias behavior still seems to be a limitation or a separate issue.
Thanks!
<!-- gh-comment-id:3678147221 -->
@moodiness commented on GitHub (Dec 20, 2025):
**Closing this issue — partially resolved**
The issue was caused by the installer installing an **old version of OLM (v1.0.0)** instead of the latest one (**v1.2.0**).
I fixed most of the problem by:
1. Uninstalling **OLM**
2. Uninstalling **Pangolin**
3. Reinstalling **Pangolin**, which installed the correct OLM version
After reinstalling, the connection works correctly using the IP address.
However, **the alias still does not work** when accessing the private resource from the Pangolin Client.
I’m closing this issue since the main problem is resolved, but the alias behavior still seems to be a limitation or a separate issue.
Thanks!
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @moodiness on GitHub (Dec 18, 2025).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/2115
Describe the Bug
Description
Hi,
I’m having an issue when trying to configure a private resource using the IP address of my Unraid server and assigning it an alias in Pangolin.
My goal is to access this resource via the Pangolin Client using the alias, but it does not work as expected.
What I’m trying to do
192.168.1.x) as a private resourceEnvironment
To Reproduce
and then it shows me this in the logs:
Expected Behavior
Expected behavior
The resource should be reachable via the alias from the Pangolin Client.
Actual behavior
The connection fails when using the alias.
Accessing the resource directly by IP does not work either when it is defined with an alias in the private resource configuration.
@Dyhlio commented on GitHub (Dec 18, 2025):
Hello I’m facing the same issue with same logs as him
@keonramses commented on GitHub (Dec 19, 2025):
@moodiness you have to specify the port the service you are trying to access is on.
Ex: 192.168.1.50:3000 unraid.home:8080
@Dyhlio commented on GitHub (Dec 19, 2025):
@keonramses
Personally I have already tried it but it does not work either
even another container with that port does not work
@moodiness commented on GitHub (Dec 19, 2025):
Hey thanks for your comment but I know and it's still doesn't work, I have tried 3/4 containers so ip:port and same result :/
@miloschwartz commented on GitHub (Dec 20, 2025):
When you click Connect, could you watch Task Manager and see whether the tunnel service starts?
When disconnected, you should see two Pangolin processes. After clicking Connect, a third process (the tunnel service) should spawn. My suspicion is that this process isn’t being created for some reason.
Also, please keep an eye on the logs when you click Connect and try to capture the output at that moment. That information will be very helpful for debugging. Without it, we don’t have enough detail to track down the issue.
@moodiness commented on GitHub (Dec 20, 2025):
Not connected:
Connected:
Logs:
@moodiness commented on GitHub (Dec 20, 2025):
Closing this issue — partially resolved
The issue was caused by the installer installing an old version of OLM (v1.0.0) instead of the latest one (v1.2.0).
I fixed most of the problem by:
After reinstalling, the connection works correctly using the IP address.
However, the alias still does not work when accessing the private resource from the Pangolin Client.
I’m closing this issue since the main problem is resolved, but the alias behavior still seems to be a limitation or a separate issue.
Thanks!