Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

A plugin registration failure after the Redis client is created leaves Redis connections open and the process never exits

Open Beginner friendly
#378 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
77/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
redis, typescript
Domain
backend

Research direction

Start in src/index.ts and trace where Redis clients and broker connections are created and where the onClose hook is registered. Reproduce with the described transformRouteSchema that returns a promise, then check the related route and OAuth registration paths. Done means failed registration still closes the connections and the process exits cleanly.

Written by the indexing model from the issue text.

Description

When redis is configured, src/index.ts creates the Redis client (and the broker's duplicated connections) early, but the onClose hook that quits them is only added near the end of registration. Anything that throws in between skips it, for example:

  • a transformRouteSchema that returns something invalid (src/routes/mcp.ts)
  • the OAuth client plugin failing OIDC discovery, or clientIdMetadataDocument without resourceUri
  • any other route registration error

Repro: register the plugin with redis and a transformRouteSchema that returns a promise. app.ready() rejects, app.close() resolves, but three TCPSocketWrap handles remain and the process stays alive.

Expected: the process exits, as option validation already promises (the comment above it notes that "a connection opened first would be left behind").

Fix: add the Redis/broker teardown onClose right after the client is created, or catch registration errors, quit Redis and close the broker, then rethrow.

🤖 Generated with Claude Code

Dominant language
TypeScript
Stars
62
Forks
16
Avg merge
1d 5h
Merged PRs (30d)
56

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from platformatic/mcp

All issues in platformatic/mcp

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.