Skip to content

[MEDIUM] Missing graceful shutdown handling for in-flight BullMQ jobs #135

Description

@kilodesodiq-arch

Engineering Gap

app/backend/src/main.ts line 49 calls app.enableShutdownHooks() which enables NestJS lifecycle hooks, but no explicit handling for draining in-flight BullMQ jobs before shutdown. Jobs may be lost during deployments.

Codebase Evidence

  • app/backend/src/main.ts line 49: app.enableShutdownHooks() — minimal shutdown handling
  • app/backend/src/app.module.ts lines 62-80: BullMQ configured with job removal settings but no shutdown drain

Risk Profile

In-flight onchain transactions or verification jobs lost during deployment.

Remediation Strategy

Add OnApplicationShutdown handler to BullMQ module. Pause queues, wait for active jobs to complete (with timeout), then close connections.

Success Conditions

  • Shutdown handler drains active jobs
  • Timeout prevents indefinite wait
  • Jobs not lost during graceful shutdown

Change Surface

Files: main.ts, app.module.ts, BullMQ processors

Security Review

No security impact.

Completion Checklist

  • Implementation completed
  • Peer reviewed
  • Tests passing
  • Ready for merge

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaigninfrastructureInfrastructure and deploymentmedium

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions