[ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Buffer
Version
v20.1.0
Platform
Linux 6.1.0-0.deb11.6-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.15-1~bpo11+1 (2023-03-16) x86_64 GNU/Linux
Subsystem
fs
What steps will reproduce the bug?
# node
Welcome to Node.js v20.1.0.
Type ".help" for more information.
> const { access, lstat, opendir, readlink } = require('fs/promises');
undefined
> const mydir = await opendir(Buffer.from('/mydirectory'), { encoding: 'buffer' })
undefined
> for (const file of mydir) { console.log(file) }
Uncaught:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Buffer
at __node_internal_captureLargerStackTrace (node:internal/errors:490:5)
at new NodeError (node:internal/errors:399:5)
at validateString (node:internal/validators:163:11)
at Object.join (node:path:1176:7)
at Dir.processReadResult (node:internal/fs/dir:155:22)
at req.oncomplete (node:internal/fs/dir:131:14)
at FSReqCallback.callbackTrampoline (node:internal/async_hooks:130:17) {
code: 'ERR_INVALID_ARG_TYPE'
}
How often does it reproduce? Is there a required condition?
When using { encoding: 'buffer' }
What is the expected behavior? Why is that the expected behavior?
This should work like v20.0.0:
> for (const file of mydir) { console.log(file) }
Dirent {
name: <Buffer 2e 54 72 61 73 68 2d 31 30 30 30>,
[Symbol(type)]: 2
}
Dirent { name: <Buffer 63 6f 6e 66 69 67>, [Symbol(type)]: 2 }
Dirent { name: <Buffer 63 65 72 74 73>, [Symbol(type)]: 2 }
Dirent { name: <Buffer 70 6f 6f 6c>, [Symbol(type)]: 2 }
Dirent { name: <Buffer 68 6f 73 74 73>, [Symbol(type)]: 2 }
Dirent { name: <Buffer 6c 6f 67>, [Symbol(type)]: 2 }
What do you see instead?
Uncaught:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Buffer
at __node_internal_captureLargerStackTrace (node:internal/errors:490:5)
at new NodeError (node:internal/errors:399:5)
at validateString (node:internal/validators:163:11)
at Object.join (node:path:1176:7)
at Dir.processReadResult (node:internal/fs/dir:155:22)
at req.oncomplete (node:internal/fs/dir:131:14)
at FSReqCallback.callbackTrampoline (node:internal/async_hooks:130:17) {
code: 'ERR_INVALID_ARG_TYPE'
}
Additional information
No response