[GH-ISSUE #133] Drop Windows client infinite library load bug #69

Closed
opened 2026-02-17 17:12:00 -05:00 by yindo · 6 comments
Owner

Originally created by @Janczykkkko on GitHub (Sep 3, 2025).
Original GitHub issue: https://github.com/Drop-OSS/drop-app/issues/133

Firstly - great job! Waiting impatiently on cloud sync functionality!

As for the issue:
When PC clock is not in sync with server (PC was 2 hrs behind) the desktop client hangs on Library tab loading infinitely. No other tabs are accesible. When clicking the refres button getting error:

Image

No error on server side... So I guess client is trying to validate that token has not expired and its not valid yet? Dunno. Haven't tested multiple timezones - PC and server are in the same timezone (other than the time being 2hrs behind this one time)
Standard installation:

services:
  postgres-drop:
    image: harbor.REDACTED.eu/dockerhub/postgres:14-alpine
    container_name: postgres-drop
    restart: always
    expose:
      - 5432
    healthcheck:
      test: pg_isready -d drop -U drop
      interval: 30s
      timeout: 60s
      retries: 5
      start_period: 10s
    volumes:
      - /volume1/games/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=REDACTED
      - POSTGRES_USER=REDACTED
      - POSTGRES_DB=REDACTED
  drop:
    image: harbor.REDACTED.eu/ghcr.io/drop-oss/drop:v0.3.3
    restart: always
    depends_on:
      postgres-drop:
        condition: service_healthy
    expose:
      - 3000
    volumes:
      - /volume1/games/library:/library
      - /volume1/games/data:/data
    environment:
      - DATABASE_URL=postgres://REDACTED:REDACTED@postgres-drop:5432/drop
      - EXTERNAL_URL=https://games.REDACTED.eu
      - OIDC_CLIENT_ID=drop
      - OIDC_CLIENT_SECRET=REDACTED
      - OIDC_ADMIN_GROUP=admin
      - OIDC_WELLKNOWN=https://auth.REDACTED.eu/.well-known/openid-configuration
      - GIANT_BOMB_API_KEY=REDACTED
    labels:
      - traefik.enable=true
      - traefik.http.routers.drop.rule=Host(`games.REDACTED.eu`)
      - traefik.http.routers.drop.entrypoints=websecure
      - traefik.http.services.drop.loadbalancer.server.port=3000
      - traefik.http.routers.drop.tls=true
      - traefik.http.routers.drop.priority=9
networks:
  default:
    name: root
    external: true
Originally created by @Janczykkkko on GitHub (Sep 3, 2025). Original GitHub issue: https://github.com/Drop-OSS/drop-app/issues/133 Firstly - great job! Waiting impatiently on cloud sync functionality! As for the issue: When PC clock is not in sync with server (PC was 2 hrs behind) the desktop client hangs on Library tab loading infinitely. No other tabs are accesible. When clicking the refres button getting error: <img width="1167" height="1304" alt="Image" src="https://github.com/user-attachments/assets/24525c4e-da93-411f-b8f3-985684d517cd" /> No error on server side... So I guess client is trying to validate that token has not expired and its not valid yet? Dunno. Haven't tested multiple timezones - PC and server are in the same timezone (other than the time being 2hrs behind this one time) Standard installation: ```yaml services: postgres-drop: image: harbor.REDACTED.eu/dockerhub/postgres:14-alpine container_name: postgres-drop restart: always expose: - 5432 healthcheck: test: pg_isready -d drop -U drop interval: 30s timeout: 60s retries: 5 start_period: 10s volumes: - /volume1/games/db:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=REDACTED - POSTGRES_USER=REDACTED - POSTGRES_DB=REDACTED drop: image: harbor.REDACTED.eu/ghcr.io/drop-oss/drop:v0.3.3 restart: always depends_on: postgres-drop: condition: service_healthy expose: - 3000 volumes: - /volume1/games/library:/library - /volume1/games/data:/data environment: - DATABASE_URL=postgres://REDACTED:REDACTED@postgres-drop:5432/drop - EXTERNAL_URL=https://games.REDACTED.eu - OIDC_CLIENT_ID=drop - OIDC_CLIENT_SECRET=REDACTED - OIDC_ADMIN_GROUP=admin - OIDC_WELLKNOWN=https://auth.REDACTED.eu/.well-known/openid-configuration - GIANT_BOMB_API_KEY=REDACTED labels: - traefik.enable=true - traefik.http.routers.drop.rule=Host(`games.REDACTED.eu`) - traefik.http.routers.drop.entrypoints=websecure - traefik.http.services.drop.loadbalancer.server.port=3000 - traefik.http.routers.drop.tls=true - traefik.http.routers.drop.priority=9 networks: default: name: root external: true ```
yindo added the support label 2026-02-17 17:12:00 -05:00
Author
Owner

@quexeky commented on GitHub (Sep 3, 2025):

I'll move this to the drop-app repo because it makes sense that it can't access it because each token which is generated is only valid for 30 minutes I believe. But it's definitely a bug with the app that it hangs and then crashes.

@quexeky commented on GitHub (Sep 3, 2025): I'll move this to the drop-app repo because it makes sense that it can't access it because each token which is generated is only valid for 30 minutes I believe. But it's definitely a bug with the app that it hangs and then crashes.
Author
Owner

@Janczykkkko commented on GitHub (Sep 3, 2025):

Awesome!

@Janczykkkko commented on GitHub (Sep 3, 2025): Awesome!
Author
Owner

@Janczykkkko commented on GitHub (Sep 16, 2025):

@quexeky today i encountered the same issue but both server and client have same same time. Restarted both, still after the auth flow via browser / aut code the same issue appears with library loading + error on refresh button press. Side by side a client on my another device is not having this issue :(

@Janczykkkko commented on GitHub (Sep 16, 2025): @quexeky today i encountered the same issue but both server and client have same same time. Restarted both, still after the auth flow via browser / aut code the same issue appears with library loading + error on refresh button press. Side by side a client on my another device is not having this issue :(
Author
Owner

@DecDuck commented on GitHub (Sep 16, 2025):

The timing thing is for the true, UTC time, and isn't affected by the local timezone. If you go to https://time.is and if it says you're within 10ish seconds, it's not that.

@DecDuck commented on GitHub (Sep 16, 2025): The timing thing is for the true, UTC time, and isn't affected by the local timezone. If you go to https://time.is and if it says you're within 10ish seconds, it's not that.
Author
Owner

@Janczykkkko commented on GitHub (Sep 16, 2025):

@DecDuck Ye time sync was behind by 1 minute. After i sync time in windows settings it works. Can this be adjusted? This seems like a bug, clients time should not affect the ability to auth especially since token was just generated by server I think. I am using drop client on a handheld so it can get out of sync due to using hibernation...

@Janczykkkko commented on GitHub (Sep 16, 2025): @DecDuck Ye time sync was behind by 1 minute. After i sync time in windows settings it works. Can this be adjusted? This seems like a bug, clients time should not affect the ability to auth especially since token was just generated by server I think. I am using drop client on a handheld so it can get out of sync due to using hibernation...
yindo changed title from Drop Windows client infinite library load bug to [GH-ISSUE #133] Drop Windows client infinite library load bug 2026-06-05 14:24:37 -04:00
yindo closed this issue 2026-06-05 14:24:37 -04:00
Author
Owner

@DecDuck commented on GitHub (Feb 25, 2026):

To avoid an additional round-trip for each request, the client uses it's local time as the nonce for authentication, so it has to be within an acceptable tolerance for it to work.

We might move to a token-based authentication in the future, but for now, the time unfortunately has to be in-sync :/

<!-- gh-comment-id:3959893675 --> @DecDuck commented on GitHub (Feb 25, 2026): To avoid an additional round-trip for each request, the client uses it's local time as the nonce for authentication, so it has to be within an acceptable tolerance for it to work. We might move to a token-based authentication in the future, but for now, the time unfortunately has to be in-sync :/
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Drop-OSS/drop-app#69