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

memory: persistence EISDIR test fails on Node 26.7 (the path suffix depends on the Node minor, not the major)

Open Beginner friendly
#5,162 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@ace-ify is already working on this.

Since Oct 19, 2026.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
83/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
node.js, typescript
Domain
testing

Research direction

Read src/memory/__tests__/persistence.test.ts, especially the test "reports a graph file that cannot be read as a tool error" and the version-based expectation introduced by #5076. Run npm test -w src/memory -- __tests__/persistence.test.ts to reproduce the failure on Node 26.7. Update the assertion to accept the bare EISDIR message or that message followed by the file path, then confirm the test passes.

Written by the indexing model from the issue text.

Description

bug server-memory v2

Problem

src/memory/__tests__/persistence.test.ts, "reports a graph file that cannot be read as a tool error", fails again locally, this time on Node 26.7.0 (macOS), so npm run local:gate exits 1 on a machine whose default Node is 26.7:

Expected: "EISDIR: illegal operation on a directory, read '/var/folders/.../memory.jsonl'"
Received: "EISDIR: illegal operation on a directory, read"

#5076 made the expectation follow the Node major: the path appended on >= 26, the bare message before. That matched the Node 26 release #5076 was filed against, but Node 26.7.0 no longer appends the path:

$ node -v && node -e 'require("fs").promises.readFile("/tmp").catch(e=>console.log(e.message))'
v26.7.0
EISDIR: illegal operation on a directory, read

CI's Node 26 leg (#5068) passes on v2/main, so the format differs by Node minor (or platform), not by major. The server is correct on every version: it returns an isError result carrying Node's message. Only the test's expectation is wrong.

Found while running the gate for #5161, on v2/main at 38569bd5.

Reproduce

On Node 26.7.0, on v2/main:

npm ci
npm test -w src/memory -- __tests__/persistence.test.ts

1 failed. Passes on Node 22.

Change

Stop keying the expectation on the Node version. Assert the message is exactly the bare text, or the bare text followed by '<filePath>': for example expect([bare, \${bare} '${filePath}'`]).toContain(textOf(result))`. That still pins the full text the client receives, and holds whichever form the running Node produces.

Dominant language
TypeScript
Stars
91.4k
Forks
11.8k
Avg merge
7h 51m
Merged PRs (30d)
121

Getting set up

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 modelcontextprotocol/servers

All issues in modelcontextprotocol/servers

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.