Redis session history streams never expire
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 58/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- redis, typescript
- Domain
- backend
Research direction
Start with RedisSessionStore.addMessage and the session touch logic to trace how the history stream and session hash are written; then inspect src/index.ts for cleanup scheduling. Reproduce with sessionTtlMs: 500 and check the session key and history stream TTL after buffering a message. Done means the stream gets the session TTL on touch and an expired session is not recreated without its id.
Written by the indexing model from the issue text.
Description
RedisSessionStore.addMessage XADDs to session:<id>:history but never sets an expiry on it, and the plugin schedules cleanup() only for MemorySessionStore (src/index.ts). Once the session hash expires its history stream (up to 100 messages) stays in Redis forever, including after app.close(). If the hash has already expired, addMessage also re-creates a hash without id.
Repro: sessionTtlMs: 500, buffer one message, wait: the session key is gone, session:<id>:history exists with PTTL -1.
The history stream should get the same TTL as the session (refreshed on touch), and addMessage should not resurrect an expired session.
🤖 Generated with Claude Code
- Dominant language
- TypeScript
- Stars
- 63
- Forks
- 16
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 56
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from platformatic/mcp
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
platformatic/mcp#388 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
platformatic/mcp#387 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
platformatic/mcp#382 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
platformatic/mcp#381 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
platformatic/mcp#378 ·
Maintainers usually reply within 1 day
All issues in platformatic/mcp
Similar issues
-
Add: ESP 2 ROOpenapproved check:passed streams:add
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
ipaas: Configure form shows "Deploy to apply." and "Overrides selected Link" when they don't applyPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
wso2/integration-control-plane#1118 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
UTDNebula/utd-notebook#311 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day