nodejs/node · error
icupkg/ures_enumDependencies(%s array res=%08x)[%d].recurse(
Error message
icupkg/ures_enumDependencies(%s array res=%08x)[%d].recurse(%08x) failed
What it means
Diagnostic fprintf printed when recursive dependency enumeration of an ARRAY-type resource item fails. Analogous to error 982 but for URES_ARRAY: each array element is recursed via ures_enumDependencies, and if the child call fails, the parent logs the array resource handle and the failing index/item handle. The actual error code is propagated from the child call.
Source
Thrown at deps/icu-small/source/tools/toolutil/pkgitems.cpp:360
}
}
}
break;
case URES_ARRAY:
{
/* recurse */
int32_t count=res_countArrayItems(pResData, res);
for(int32_t i=0; i<count; ++i) {
Resource item=res_getArrayItem(pResData, res, i);
ures_enumDependencies(
itemName, pResData,
item, nullptr,
inKey, depth+1,
check, context,
pkg,
pErrorCode);
if(U_FAILURE(*pErrorCode)) {
fprintf(stderr, "icupkg/ures_enumDependencies(%s array res=%08x)[%d].recurse(%08x) failed\n",
itemName, res, i, item);
break;
}
}
}
break;
default:
break;
}
return doCheckParent;
}
static void
ures_enumDependencies(const char *itemName, const UDataInfo *pInfo,
const uint8_t *inBytes, int32_t length,
CheckDependency check, void *context,
Package *pkg,
UErrorCode *pErrorCode) {View on GitHub (pinned to 1b2de5e052)
Solutions
- Check stderr for the child error printed before this message and fix the root cause (likely an alias or locale ID problem in an array element).
- Rebuild the .res bundle from source .txt with genrb.
- Dump the array contents with derb to inspect the element at the logged index.
Defensive patterns
Strategy: try-catch
Try / catch
// Capture stderr to find the underlying child error before the array recurse failure
result = subprocess.run(['icupkg', '--list', 'bundle.res'], capture_output=True)
stderr_lines = result.stderr.decode().splitlines()
for i, line in enumerate(stderr_lines):
if 'array' in line and 'recurse' in line and 'failed' in line:
print(f'Underlying child error: {stderr_lines[i-1] if i > 0 else "unknown"}') Prevention
- Check the full stderr for the child error that precedes the array recurse failure message.
- Rebuild .res bundles from .txt source to ensure array elements are valid.
- Use derb to inspect array element values when debugging.
When it happens
Trigger: ures_enumDependencies processes a URES_ARRAY resource, iterates via res_countArrayItems/res_getArrayItem, recurses into each element, and a child call sets U_FAILURE(*pErrorCode). The fprintf at pkgitems.cpp:360 fires and the loop breaks.
Common situations: An array element is a string or alias resource that triggers alias/locale errors in the recursive call; array data corruption from a failed or interrupted genrb build; .res format version mismatch.
Related errors
- icupkg/ures_enumDependencies(%s table res=%08x)[%d].recurse(
- couldn't parse the file %s. Error:%s
- U_INVALID_CHAR_FOUND
- U_UNSUPPORTED_ERROR
- icupkg: %s is not a pool bundle
AI-assisted analysis of nodejs/node@1b2de5e052 (2026-08-13).
Data as JSON: /api/errors/07c7aa7417052212.
Report an issue: GitHub.