[GH-ISSUE #2901] Adding a private resource breaks hole-punch for already-connected clients; cache never repopulates #7060

Open
opened 2026-04-25 16:03:14 -05:00 by GiteaMirror · 0 comments
Owner

Originally created by @andrewixl on GitHub (Apr 24, 2026).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/2901

Describe the Bug

Creating any private resource (siteResources) and once created, if an Olm client is registered (connected) puts the client into a permanent "last hole punch is too old" loop. The client never reaches connected state, and no amount of reconnecting, restarting, or deleting/recreating the resource restores it.

Environment

  • Ubuntu 24.04
  • Pangolin: ee-1.17.1
  • Gerbil: 1.31
  • Traefik: 3.6
  • Newt: 1.11.0
  • Olm Windows: 0.9.0

To Reproduce

Reproduction:

  1. No private resources.
  2. Create a new client. Pair it with a Windows Pangolin client. Confirm connected.
  3. Add ONE private resource pointing at any LAN IP.
  4. Immediately: logs show "handleOlmServerPeerAddMessage: No endpoint found for client N"
  5. Client enters permanent "Client last hole punch is too old" loop
  6. clientSitesAssociationsCache rows for that client have endpoint=NULL, publicKey=NULL
  7. clients.lastHolePunch remains NULL
  8. Deleting the resource restored the client to connectivity.

Expected Behavior

Expected behavior should allow the client to register and connect to the private resources.

Originally created by @andrewixl on GitHub (Apr 24, 2026). Original GitHub issue: https://github.com/fosrl/pangolin/issues/2901 ### Describe the Bug Creating any private resource (siteResources) and once created, if an Olm client is registered (connected) puts the client into a permanent "last hole punch is too old" loop. The client never reaches connected state, and no amount of reconnecting, restarting, or deleting/recreating the resource restores it. ### Environment - Ubuntu 24.04 - Pangolin: ee-1.17.1 - Gerbil: 1.31 - Traefik: 3.6 - Newt: 1.11.0 - Olm Windows: 0.9.0 ### To Reproduce Reproduction: 1. No private resources. 2. Create a new client. Pair it with a Windows Pangolin client. Confirm connected. 3. Add ONE private resource pointing at any LAN IP. 4. Immediately: logs show "handleOlmServerPeerAddMessage: No endpoint found for client N" 5. Client enters permanent "Client last hole punch is too old" loop 6. clientSitesAssociationsCache rows for that client have endpoint=NULL, publicKey=NULL 7. clients.lastHolePunch remains NULL 8. Deleting the resource restored the client to connectivity. ### Expected Behavior Expected behavior should allow the client to register and connect to the private resources.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/pangolin#7060