I don’t see the button you’re talking about.
I have entered incognito mode in the browser, but it still does not appear.
Even so, the system stays on ‘loading’ and does nothing else. Yes, it picks up the routes fine.
I am using the latest version.
v0.29.1
Build hash:869cbd49
Bah okay. The button isn’t appearing because the Stash hasn’t loaded. Fail. I’m about to push a new version in the next hour or so that has some retry logic baked in because I think I know what the issue is and you’re right, it’s just a race condition where your IP assignment hasn’t taken place yet when it tries to fetch it the first time.
It finally worked with the latest version! Thank you very much! 
Everything indicates that the network is not available as soon as the container starts up. On the third attempt, it connected and recovered all the data.
[2025-11-05T17:43:56.863Z] [ERROR] TROUBLESHOOTING: Network connectivity issue detected
[2025-11-05T17:43:56.863Z] [ERROR] → Verify STASH_URL is correct and accessible from Peek container
[2025-11-05T17:43:56.863Z] [ERROR] → Check if Stash server is running
[2025-11-05T17:43:56.863Z] [ERROR] → Test connectivity: curl -v <STASH_URL>/graphql
[2025-11-05T17:43:56.863Z] [ERROR] ============================================================
[2025-11-05T17:43:56.863Z] [ERROR] ✗ Failed to initialize Stash cache (attempt 2/5)
[2025-11-05T17:43:56.863Z] [ERROR] ============================================================
[2025-11-05T17:43:56.863Z] [ERROR] Error details: {"name":"Error","message":"Scene fetch failed: fetch failed","stack":"Error: Scene fetch failed: fetch failed\n at file:///app/backend/services/StashCacheManager.js:105:23\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async StashCacheManager.refreshCache (file:///app/backend/services/StashCacheManager.js:102:34)\n at async StashCacheManager.initialize (file:///app/backend/services/StashCacheManager.js:37:9)\n at async initializeCacheWithRetry (file:///app/backend/initializers/cache.js:99:13)\n at async initializeCache (file:///app/backend/initializers/cache.js:153:5)"}
[2025-11-05T17:43:56.863Z] [WARN] Retrying in 10 seconds... (3 attempts remaining)
[2025-11-05T17:44:06.866Z] [INFO] ============================================================
[2025-11-05T17:44:06.866Z] [INFO] Initializing Stash cache (attempt 3/5)...
[2025-11-05T17:44:06.866Z] [INFO] ============================================================
[2025-11-05T17:44:06.866Z] [INFO] Initializing Stash cache...
[2025-11-05T17:44:06.866Z] [INFO] Starting cache refresh - fetching entities from Stash
[2025-11-05T17:44:06.866Z] [INFO] Fetching scenes (compact)...
[2025-11-05T17:44:09.720Z] [INFO] Scenes fetched in 2854ms (2861 scenes)
[2025-11-05T17:44:09.720Z] [INFO] Fetching performers...
[2025-11-05T17:44:11.150Z] [INFO] Performers fetched in 1430ms (2534 performers)
[2025-11-05T17:44:11.150Z] [INFO] Fetching studios...
[2025-11-05T17:44:11.602Z] [INFO] Studios fetched in 452ms (285 studios)
[2025-11-05T17:44:11.602Z] [INFO] Fetching tags...
[2025-11-05T17:44:11.941Z] [INFO] Tags fetched in 339ms (584 tags)
[2025-11-05T17:44:11.941Z] [INFO] Fetching galleries...
[2025-11-05T17:44:11.960Z] [INFO] Galleries fetched in 18ms (0 galleries)
[2025-11-05T17:44:11.960Z] [INFO] Fetching groups...
[2025-11-05T17:44:12.106Z] [INFO] Groups fetched in 146ms (242 groups)
[2025-11-05T17:44:12.249Z] [INFO] Invalidated all cache {"deletedCount":0}
[2025-11-05T17:44:12.254Z] [INFO] Invalidated all filtered entity caches due to Stash cache refresh
[2025-11-05T17:44:12.255Z] [INFO] ✓ Cache refreshed successfully {"duration":"5388ms","counts":{"scenes":2861,"performers":2534,"studios":285,"tags":584,"galleries":0,"groups":242},"totalEntities":6506}
[2025-11-05T17:44:12.255Z] [INFO] StashCacheManager initialized successfully
[2025-11-05T17:44:12.255Z] [INFO] ============================================================
[2025-11-05T17:44:12.255Z] [INFO] ✓ Stash cache initialized successfully
[2025-11-05T17:44:12.255Z] [INFO] ============================================================
[2025-11-05T17:44:12.255Z] [INFO] ============================================================
[2025-11-05T17:44:12.255Z] [INFO] Peek Server Ready
[2025-11-05T17:44:12.255Z] [INFO] ============================================================
1 Like
Great, thank you for helping me make the app better! I hope you enjoy, and be sure to let me know if you discover any other issues
1 Like
I can work up a more robust filtering mechanism, but in the meantime, does 1.3.2 properly filter out the 0 content items you were seeing? I made some improvements to that logic
Sadly, it did not. I also created a new instance in case the changes needed a fresh peek database, but I got the same result. Maybe there’s something wrong with my configuration? Here is the docker-compose.yml file I’m using:
#source: https://carrotwaxr.github.io/peek-stash-browser/getting-started/installation/#option-1-unraid-community-applications
services:
peek-stash-browser:
image: carrotwaxr/peek-stash-browser:latest
container_name: peek-stash-browser
restart: unless-stopped
ports:
- 1056:80
volumes:
- /nas/media/stash:/app/media:ro
- /nas/media/downloads/qbittorrent/completed/stash:/app/media/downloads:ro
- ./data:/app/data
- ./tmp:/app/tmp
environment:
- STASH_URL=https://"_"/graphql
- STASH_API_KEY="_"
#- STASH_INTERNAL_PATH=/media # What Stash calls it
#- STASH_MEDIA_PATH=/app/media # What Peek calls it
networks:
- docker-default
- docker-vpn
networks:
docker-default:
external: true
docker-vpn:
external: true
I really appreciate the feedback. I don’t think there’s any issue with your configuration. I’ll just have to come up with some better test scenarios and, better yet, get some automated test coverage around the filtering and restrictions. Unit tests will likely reveal a host of bugs.
Thanks for the detailed feedback on the rest. Video player issues are coming next, including many of those you listed. Stay tuned!
1 Like