Skip to content

[Connector] Swallowed promises in Redis/system/demos & demo upload file deletion race #410

@Flegma

Description

@Flegma

Summary

Multiple async operations swallow errors, and demo upload has a race condition with file deletion.

Findings

  • kubernetes.service.ts — K8s API errors return undefined. Callers cannot distinguish no data from failure.
  • webrtc.service.ts — void redis.multi().exec() swallows Redis transaction errors.
  • demos.service.ts — first uploadDemos() error swallowed. Failed upload could delete files. Uses deprecated rmdirSync.
  • webrtc.service.ts — pcMap accumulates peer connections never removed.
  • system.service.ts — void sendNodeStatus() in setInterval swallows errors.

Impact

Silent data loss, stale metrics, demo file loss, growing peer connection map.

Suggested Fix

Add .catch() to void promises. Only delete demos after confirmed upload. Replace rmdirSync. Add peer cleanup.


Related Issues (Error Handling Pattern)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1-highStability & reliabilityaudit-2026-03From March 2026 codebase auditerror-handlingMissing or incorrect error handlingservice:connector5stackgg/game-server-node-connector service

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions