Dropped the container count down to 5 and the display worked as it should. Slowly increasing to 20-22 and the display stopped working.
Environment
OS Type & Version: Ubuntu 24.04
Pangolin Version: 1.13.0
Gerbil Version: 1.2.2
Traefik Version: 3.6.4
Newt Version: 1.7.0
Olm Version: NA
Also using Socket-Proxy for the docker socket connection.
To Reproduce
Bring up more than 20+ containers in Docker. This will, at least in my environment, will prevent this containers from showing in Pangolin.
Expected Behavior
Pangolin Site should display all docker containers when using the target docker selector.
Originally created by @cmacnichol on GitHub (Dec 18, 2025).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/2117
### Describe the Bug
The Site Target Docker Selector does not display any information when the docker container count is greater than 20-22 containers.
Did a test with a new connection and debug logs enabled with 55 containers enabled.
From the VPS
```text
pangolin | 2025-12-18T15:25:28.655915975Z 2025-12-18T15:25:28+00:00 [info]: Handling Docker containers response
pangolin | 2025-12-18T15:25:28.657640270Z 2025-12-18T15:25:28+00:00 [info]: Newt ID: wc7kosv05rrhjv0, Site ID: 2
pangolin | 2025-12-18T15:25:28.659236753Z 2025-12-18T15:25:28+00:00 [info]: Docker containers for Newt wc7kosv05rrhjv0: 55
pangolin | 2025-12-18T15:25:28.667629634Z 2025-12-18T15:25:28+00:00 [debug]: Received Docker blueprint: {"proxy-resources":{},"client-resources":{}}
```
From the Docker Host
```text
newt | 2025-12-18T15:25:28.472298792Z DEBUG: 2025/12/18 15:25:28 Triggering callback with 55 containers after Docker event start
newt | 2025-12-18T15:25:28.472307228Z DEBUG: 2025/12/18 15:25:28 Docker event detected, sending updated container list (55 containers)
newt | 2025-12-18T15:25:28.472313972Z DEBUG: 2025/12/18 15:25:28 Sending message: newt/socket/containers, data: map[containers:[{ID:66ff491f9d12 Name:n8n Image:docker.n8n.io/n8nio/n8n State:running Status:Up 8 hours Ports:[{PrivatePort:5678 PublicPort:5678 Type:tcp IP:0.0.0.0} {PrivatePort:5678 PublicPort:5678 Type:tcp IP:::}] Labels:map[com.docker.compose.config-hash:e31b090bb4536d6c535a4506f47ca20010ec13cbb32334ea4fa45d5a0a8f3e4b com.docker.compose.container-number:1 com.docker.compose.depends_on:postgresql:service_healthy:false com.docker.compose.image:sha256:dd1328871d00a1c
.....
.....
newt | 2025-12-18T15:25:28.571488258Z DEBUG: 2025/12/18 15:25:28 Updated container list sent successfully
```
Dropped the container count down to 5 and the display worked as it should. Slowly increasing to 20-22 and the display stopped working.
### Environment
- OS Type & Version: Ubuntu 24.04
- Pangolin Version: 1.13.0
- Gerbil Version: 1.2.2
- Traefik Version: 3.6.4
- Newt Version: 1.7.0
- Olm Version: NA
Also using Socket-Proxy for the docker socket connection.
### To Reproduce
Bring up more than 20+ containers in Docker. This will, at least in my environment, will prevent this containers from showing in Pangolin.
### Expected Behavior
Pangolin Site should display all docker containers when using the target docker selector.
GiteaMirror
added the bug label 2026-05-16 03:07:44 -05:00
@oschwartz10612 commented on GitHub (Dec 19, 2025):
Thanks for the writeup!
Thinking we need to split up the websocket json messages to Pangolin because they are too big and are getting lost.
Will mean we need to reassemble on the other side but I think this can be done into the cache.
<!-- gh-comment-id:3675375039 -->
@oschwartz10612 commented on GitHub (Dec 19, 2025):
Thanks for the writeup!
Thinking we need to split up the websocket json messages to Pangolin because they are too big and are getting lost.
Will mean we need to reassemble on the other side but I think this can be done into the cache.
@jaydeep-pipaliya commented on GitHub (Apr 9, 2026):
Hi, I'd like to work on this! Could I be assigned?
Based on the maintainer's analysis, the fix is to chunk large WebSocket messages (like Docker container lists) so they don't get dropped when the payload exceeds the frame size limit. I'll implement message chunking on the newt side and reassembly on the pangolin side.
<!-- gh-comment-id:4211630356 -->
@jaydeep-pipaliya commented on GitHub (Apr 9, 2026):
Hi, I'd like to work on this! Could I be assigned?
Based on the maintainer's analysis, the fix is to chunk large WebSocket messages (like Docker container lists) so they don't get dropped when the payload exceeds the frame size limit. I'll implement message chunking on the newt side and reassembly on the pangolin side.
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 @cmacnichol on GitHub (Dec 18, 2025).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/2117
Describe the Bug
The Site Target Docker Selector does not display any information when the docker container count is greater than 20-22 containers.
Did a test with a new connection and debug logs enabled with 55 containers enabled.
From the VPS
From the Docker Host
Dropped the container count down to 5 and the display worked as it should. Slowly increasing to 20-22 and the display stopped working.
Environment
Also using Socket-Proxy for the docker socket connection.
To Reproduce
Bring up more than 20+ containers in Docker. This will, at least in my environment, will prevent this containers from showing in Pangolin.
Expected Behavior
Pangolin Site should display all docker containers when using the target docker selector.
@oschwartz10612 commented on GitHub (Dec 19, 2025):
Thanks for the writeup!
Thinking we need to split up the websocket json messages to Pangolin because they are too big and are getting lost.
Will mean we need to reassemble on the other side but I think this can be done into the cache.
@jaydeep-pipaliya commented on GitHub (Apr 9, 2026):
Hi, I'd like to work on this! Could I be assigned?
Based on the maintainer's analysis, the fix is to chunk large WebSocket messages (like Docker container lists) so they don't get dropped when the payload exceeds the frame size limit. I'll implement message chunking on the newt side and reassembly on the pangolin side.