nodejs/node · error
U_FILE_ACCESS_ERROR
U_FILE_ACCESS_ERROR
Error message
icupkg: unable to open list file \"%s\"\n
What it means
readList fopen()s the list file (a .txt list) for reading and gets NULL back, so it deletes the Package, prints the list name, and exit(U_FILE_ACCESS_ERROR). This is the list-open failure for text-style lists (distinct from a .dat package path).
Source
Thrown at deps/icu-small/source/tools/toolutil/pkg_icu.cpp:86
if (listPkg == nullptr) {
listPkg=new Package();
if(listPkg==nullptr) {
fprintf(stderr, "icupkg: not enough memory\n");
exit(U_MEMORY_ALLOCATION_ERROR);
}
}
listNameEnd=strchr(listname, 0);
if(isListTextFile(listname)) {
// read the list file
char line[1024];
char *end;
const char *start;
file=fopen(listname, "r");
if(file==nullptr) {
fprintf(stderr, "icupkg: unable to open list file \"%s\"\n", listname);
delete listPkg;
exit(U_FILE_ACCESS_ERROR);
}
while(fgets(line, sizeof(line), file)) {
// remove comments
end=strchr(line, '#');
if(end!=nullptr) {
*end=0;
} else {
// remove trailing CR LF
end=strchr(line, 0);
while(line<end && (*(end-1)=='\r' || *(end-1)=='\n')) {
*--end=0;
}
}
// check first non-whitespace character andView on GitHub (pinned to 1b2de5e052)
Solutions
- Verify the list file is readable: `test -r "$LIST"` before calling icupkg.
- Use an absolute path to the list file, or run icupkg from the right directory.
- Regenerate the list file if it was never produced.
- Fix ownership/permissions on the list file.
Example fix
# before
icupkg ./missing.txt out.dat # 'unable to open list file'
# after
test -r ./out/icudata.txt && icupkg ./out/icudata.txt out.dat || { echo regenerate list; exit 1; } Defensive patterns
Strategy: validation
Validate before calling
# verify the text list is readable before invoking icupkg
test -n "$LIST" && test -r "$LIST" || { echo "list '$LIST' missing/unreadable" >&2; exit 1; } Prevention
- Check the list path exists and is readable before packaging.
- Use an absolute path or run icupkg from the correct directory.
- Regenerate the list if it was never produced.
- Fix ownership/permissions on list files.
When it happens
Trigger: Passing icupkg a list file ending in a text suffix that does not exist or is not readable. The guard `if(file==nullptr)` after `fopen(listname, "r")` fires before any line is parsed.
Common situations: Typo in the list path; running icupkg from the wrong cwd with a relative list; permissions on the list file; the list was generated into a different out dir than passed.
Related errors
- U_FILE_ACCESS_ERROR
- gencmn: udata_create(-d %s -n %s -t %s) failed - %s\n
- missing list file\n
- U_MEMORY_ALLOCATION_ERROR
- icupkg: udata_openSwapper(\"%s\") failed - %s\n
AI-assisted analysis of nodejs/node@1b2de5e052 (2026-08-13).
Data as JSON: /api/errors/8ec180780fa48b96.
Report an issue: GitHub.